Esempio n. 1
0
        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))));
        }
Esempio n. 2
0
        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)));
        }
Esempio n. 3
0
 public MSAst.ElementInit TransformInitializer(ScriptGenerator generator)
 {
     return(MSAst.Expression.ElementInit(
                (MethodInfo)MethodGroup,
                Arguments.Select(o => o.Value.Transform(generator))));
 }