public virtual object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { Debug.Assert((constructorInitializer != null)); Debug.Assert((constructorInitializer.Arguments != null)); foreach (Expression o in constructorInitializer.Arguments) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } return null; }
public virtual object TrackedVisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { return base.VisitConstructorInitializer(constructorInitializer, data); }
void ConstructorInitializer( #line 1339 "Frames/cs.ATG" out ConstructorInitializer ci) { #line 1340 "Frames/cs.ATG" Expression expr; ci = new ConstructorInitializer(); Expect(9); if (la.kind == 51) { lexer.NextToken(); #line 1344 "Frames/cs.ATG" ci.ConstructorInitializerType = ConstructorInitializerType.Base; } else if (la.kind == 111) { lexer.NextToken(); #line 1345 "Frames/cs.ATG" ci.ConstructorInitializerType = ConstructorInitializerType.This; } else SynErr(184); Expect(20); if (StartOf(26)) { Argument( #line 1348 "Frames/cs.ATG" out expr); #line 1348 "Frames/cs.ATG" SafeAdd(ci, ci.Arguments, expr); while (la.kind == 14) { lexer.NextToken(); Argument( #line 1349 "Frames/cs.ATG" out expr); #line 1349 "Frames/cs.ATG" SafeAdd(ci, ci.Arguments, expr); } } Expect(21); }
public sealed override object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { this.BeginVisit(constructorInitializer); object result = this.TrackedVisitConstructorInitializer(constructorInitializer, data); this.EndVisit(constructorInitializer); return result; }
public override object VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data) { // make constructor public if visiblity is not set (unless constructor is static) if ((constructorDeclaration.Modifier & (Modifiers.Visibility | Modifiers.Static)) == 0) constructorDeclaration.Modifier |= Modifiers.Public; // MyBase.New() and MyClass.New() calls inside the constructor are converted to :base() and :this() BlockStatement body = constructorDeclaration.Body; if (body != null && body.Children.Count > 0) { ExpressionStatement se = body.Children[0] as ExpressionStatement; if (se != null) { InvocationExpression ie = se.Expression as InvocationExpression; if (ie != null) { MemberReferenceExpression fre = ie.TargetObject as MemberReferenceExpression; if (fre != null && "New".Equals(fre.MemberName, StringComparison.InvariantCultureIgnoreCase)) { if (fre.TargetObject is BaseReferenceExpression || fre.TargetObject is ClassReferenceExpression || fre.TargetObject is ThisReferenceExpression) { body.Children.RemoveAt(0); ConstructorInitializer ci = new ConstructorInitializer(); ci.Arguments = ie.Arguments; if (fre.TargetObject is BaseReferenceExpression) ci.ConstructorInitializerType = ConstructorInitializerType.Base; else ci.ConstructorInitializerType = ConstructorInitializerType.This; constructorDeclaration.ConstructorInitializer = ci; } } } } } return base.VisitConstructorDeclaration(constructorDeclaration, data); }
public virtual object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { Debug.Assert((constructorInitializer != null)); Debug.Assert((constructorInitializer.Arguments != null)); for (int i = 0; i < constructorInitializer.Arguments.Count; i++) { Expression o = constructorInitializer.Arguments[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (Expression)nodeStack.Pop(); if (o == null) constructorInitializer.Arguments.RemoveAt(i--); else constructorInitializer.Arguments[i] = o; } return null; }
public virtual object VisitConstructorInitializer(ConstructorInitializer constructorInitializer, object data) { throw new global::System.NotImplementedException("ConstructorInitializer"); }
public ConstructorDeclaration(string name, Modifiers modifier, List<ParameterDeclarationExpression> parameters, ConstructorInitializer constructorInitializer, List<AttributeSection> attributes) { Name = name; Modifier = modifier; Parameters = parameters; ConstructorInitializer = constructorInitializer; Attributes = attributes; body = BlockStatement.Null; }