Mono.CSharp.Parameter.ResolveParameterExpressionType C# (CSharp) Method

ResolveParameterExpressionType() public static method

public static ResolveParameterExpressionType ( IMemberContext ec, Mono.CSharp.Location location ) : Mono.CSharp.TypeExpr
ec IMemberContext
location Mono.CSharp.Location
return Mono.CSharp.TypeExpr
		public static TypeExpr ResolveParameterExpressionType (IMemberContext ec, Location location)
		{
			if (parameter_expr_tree_type != null)
				return parameter_expr_tree_type;

			TypeSpec p_type = ec.Module.PredefinedTypes.ParameterExpression.Resolve (location);
			parameter_expr_tree_type = new TypeExpression (p_type, location).
				ResolveAsTypeTerminal (ec, false);

			return parameter_expr_tree_type;
		}

Usage Example

Example #1
0
        public Expression CreateExpressionTree(BlockContext ec, Location loc)
        {
            ArrayList initializers = new ArrayList(Count);

            foreach (Parameter p in FixedParameters)
            {
                //
                // Each parameter expression is stored to local variable
                // to save some memory when referenced later.
                //
                StatementExpression se = new StatementExpression(p.CreateExpressionTreeVariable(ec));
                if (se.Resolve(ec))
                {
                    ec.CurrentBlock.AddScopeStatement(se);
                }

                initializers.Add(p.ExpressionTreeVariableReference());
            }

            return(new ArrayCreation(
                       Parameter.ResolveParameterExpressionType(ec, loc),
                       "[]", initializers, loc));
        }