internal override Expression ToExpression(MethodBinderContext context, Expression[] parameters) { object val = _defaultValue; if (val is Missing) { val = CompilerHelpers.GetMissingValue(_argumentType); } #if FULL if (_argumentType.IsByRef) { Variable tmp = context.GetTemporary(_argumentType.GetElementType(), "optRef"); return(Ast.Comma( Ast.Assign( tmp, Ast.Convert(Ast.Constant(val), tmp.Type) ), Ast.Read(tmp) )); } #endif return(context.ConvertExpression(Ast.Constant(val), _argumentType)); }
internal override Expression ToExpression(MethodBinderContext context, Expression[] parameters) { object val = _defaultValue; if (val is Missing) { val = CompilerHelpers.GetMissingValue(_argumentType); } return(context.ConvertExpression(Ast.Constant(val), _argumentType)); }