예제 #1
0
파일: BaseType.cs 프로젝트: Ancestry/DotQL
 public abstract System.Type GetNative(Emitter emitter);
예제 #2
0
파일: ListType.cs 프로젝트: Ancestry/DotQL
 public override System.Type GetNative(Emitter emitter)
 {
     return typeof(Runtime.ListEx<>).MakeGenericType(Of.GetNative(emitter));
 }
예제 #3
0
 public override System.Type GetNative(Emitter emitter)
 {
     return Native;
 }
예제 #4
0
파일: TupleType.cs 프로젝트: Ancestry/DotQL
 public override System.Type GetNative(Emitter emitter)
 {
     return emitter.FindOrCreateNativeFromTupleType(this);
 }
예제 #5
0
 public System.Type ActualNative(Emitter emitter)
 {
     return NativeType ?? Type.GetNative(emitter);
 }
예제 #6
0
 // TODO: handle exists and isnull for optional
 //protected override void EmitUnaryOperator(MethodContext method, Compiler compiler, ExpressionContext inner, Parse.UnaryExpression expression)
 //{
 //    switch (expression.Operator)
 //    {
 //        case Parse.Operator.Exists:
 //            if (Of.GetNative(compiler.Emitter).IsValueType)
 //                ...
 //            break;
 //        case Parse.Operator.IsNull:
 //            ...
 //            break;
 //        default: throw NotSupported(expression);
 //    }
 //}
 public override System.Type GetNative(Emitter emitter)
 {
     var memberNative = Of.GetNative(emitter);
     if (memberNative.IsValueType)
         return typeof(Nullable<>).MakeGenericType(memberNative);
     else
         return memberNative;
 }