コード例 #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
ファイル: ScalarType.cs プロジェクト: Ancestry/DotQL
 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
ファイル: ExpressionContext.cs プロジェクト: Ancestry/DotQL
 public System.Type ActualNative(Emitter emitter)
 {
     return NativeType ?? Type.GetNative(emitter);
 }
コード例 #6
0
ファイル: OptionalType.cs プロジェクト: Ancestry/DotQL
 // 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;
 }