public abstract System.Type GetNative(Emitter emitter);
public override System.Type GetNative(Emitter emitter) { return typeof(Runtime.ListEx<>).MakeGenericType(Of.GetNative(emitter)); }
public override System.Type GetNative(Emitter emitter) { return Native; }
public override System.Type GetNative(Emitter emitter) { return emitter.FindOrCreateNativeFromTupleType(this); }
public System.Type ActualNative(Emitter emitter) { return NativeType ?? Type.GetNative(emitter); }
// 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; }