public override void Visit(InternalNew node) { Visit((InternalInvocation)node); }
public override void Visit(InternalNew node) { PushLocation(node); VisitNodes(node.Arguments); _ilGen.Newobj(node.Constructor); _result.Type = node.Constructor.DeclaringType; PopLocation(); }
internal static mdr.ValueTypes GetType(InternalNew node) { return mdr.ValueTypes.Unknown; }
public override void Visit(InternalNew node) { base.Visit(node); node.ValueType = GetType(node); }
public override void Visit(InternalNew node) { PushLocation(node); var resultIndex = _stackModel.StackPointer; VisitNodes(node.Arguments); _stackModel.Pop(node.Arguments.Count); BeginICMethod(node); LoadArguments(node, node.Constructor, resultIndex); _ilGen.Newobj(node.Constructor); _ilGen.StoreValue(resultIndex, Types.ValueTypeOf(node.Constructor.DeclaringType)); _stackModel.Push(1); EndICMethod(); PopLocation(); }
public abstract void Visit(InternalNew node);
public override void Visit(InternalNew node) { PushLocation(node); var parameters = node.Constructor.GetParameters(); Debug.Assert(node.Arguments.Count == parameters.Length, "Arguments mismatch between node {0} and constructor {1} of {2}", node, node.Constructor, node.Constructor.DeclaringType); for (int i = 0; i < node.Arguments.Count; ++i) LoadFromStack(node.Arguments[i], parameters[i].ParameterType); _ilGen.Newobj(node.Constructor); StoreToStack(node.Constructor.DeclaringType); PopLocation(); }
public override void Visit(InternalNew node) { throw new InvalidOperationException(); }