public override MSAst TransformCore(ScriptGenerator generator) { var instanceExpression = MethodGroup.InstanceExpression; return(MSAst.Call( (instanceExpression != null) ? instanceExpression.Transform(generator) : null, (MethodInfo)MethodGroup, _arguments.Select(o => o.Value.Transform(generator)))); }
public override MSAst TransformCore(ScriptGenerator generator) { var target = Target; var type = (Type)null; var targetType = target as TypeExpression; MSAst transformedTarget; if (targetType != null) { type = targetType.Type; transformedTarget = MSAst.Constant(type, typeof(Type)); } else { transformedTarget = target.Transform(generator); } var method = Method; if (method != null) { return(MSAstUtil.ComplexCallHelper( (type != null) ? null : transformedTarget, method, Arguments.Select(o => o.Value.Transform(generator)).ToArray())); } if (type != null) { return(MSAst.Call( type, MethodName, TypeArguments.ResolvedTypes, _arguments.Transform(generator))); } return(MSAst.Call( transformedTarget, MethodName, TypeArguments.ResolvedTypes, _arguments.Transform(generator))); }
public MSAst.ElementInit TransformInitializer(ScriptGenerator generator) { return(MSAst.Expression.ElementInit( (MethodInfo)MethodGroup, Arguments.Select(o => o.Value.Transform(generator)))); }