private void BuildIndexes(NRefactory.ArrayInitializerExpression initializer, INode currentNodeIndex) { initializer.Elements.ForEach(e => { var childInitializer = e as NRefactory.ArrayInitializerExpression; if (childInitializer != null) { var newIndex = new ChildNode { ParentNode = currentNodeIndex }; newIndex.Root = currentNodeIndex.Root; newIndex.Index = currentNodeIndex.Nodes.Count; currentNodeIndex.Nodes.Add(newIndex); BuildIndexes(childInitializer, newIndex); } else { var newIndex = new LinqExpressionNode { ParentNode = currentNodeIndex }; newIndex.Root = currentNodeIndex.Root; newIndex.Index = currentNodeIndex.Nodes.Count; currentNodeIndex.Nodes.Add(newIndex); newIndex.Value = e.AcceptVisitor(Visitor, ParentScope); } }); }
S IAstVisitor <T, S> .VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data) { var handler = ArrayInitializerExpressionVisited; if (handler != null) { handler(arrayInitializerExpression, data); } return(VisitChildren(arrayInitializerExpression, data)); }
protected internal ArrayInitializer(NRefactory.ArrayInitializerExpression arrayInitializerExpression, IScope scope, INRefcatoryExpressionVisitor visitor) : base(scope, visitor) { MethodReference methodReference; _arrayInitializerExpression = arrayInitializerExpression; if (_arrayInitializerExpression.Parent.HasAnnotationOf<MethodReference>(out methodReference)) { _constructor = methodReference.GetActualMethod() as ConstructorInfo; InternalType = _constructor.DeclaringType; } _initializers = arrayInitializerExpression.Elements .Select(e => e.AcceptVisitor(Visitor, ParentScope)) .ToList(); }
protected internal ArrayInitializer(NRefactory.ArrayInitializerExpression arrayInitializerExpression, IScope scope, INRefcatoryExpressionVisitor visitor) : base(scope, visitor) { TypeInformation typeInformation; MethodReference methodReference; _arrayInitializerExpression = arrayInitializerExpression; if (_arrayInitializerExpression.Parent.HasAnnotationOf <MethodReference>(out methodReference)) { _constructor = methodReference.GetActualMethod() as ConstructorInfo; InternalType = _constructor.DeclaringType; if (_constructor.GetParameters().Length > 0) { var newExpression = _arrayInitializerExpression.Parent as NRefactory.ObjectCreateExpression; if (newExpression != null) { _arguments = newExpression.Arguments .Select(arg => arg.AcceptVisitor(Visitor, ParentScope).Reduce()) .ToList(); } } } else if (_arrayInitializerExpression.Parent.HasAnnotationOf <TypeInformation>(out typeInformation)) { ConstructorInfo[] ctors = null; InternalType = typeInformation.InferredType.GetActualType(); ctors = InternalType.GetConstructors(); if (ctors.Length > 1) { _constructor = ctors[0]; } } if (InternalType != null && !InternalType.IsGenericListOrDictionary() && !InternalType.IsArray) { isPropertyAssignment = true; } _initializers = arrayInitializerExpression.Elements .Select(e => e.AcceptVisitor(Visitor, ParentScope)) .ToList(); }
protected internal ArrayInitializer(NRefactory.ArrayInitializerExpression arrayInitializerExpression, IScope scope, INRefcatoryExpressionVisitor visitor) : base(scope, visitor) { TypeInformation typeInformation; MethodReference methodReference; _arrayInitializerExpression = arrayInitializerExpression; if (_arrayInitializerExpression.Parent.HasAnnotationOf<MethodReference>(out methodReference)) { _constructor = methodReference.GetActualMethod() as ConstructorInfo; InternalType = _constructor.DeclaringType; if (_constructor.GetParameters().Length > 0) { var newExpression = _arrayInitializerExpression.Parent as NRefactory.ObjectCreateExpression; if (newExpression != null) { _arguments = newExpression.Arguments .Select(arg => arg.AcceptVisitor(Visitor, ParentScope).Reduce()) .ToList(); } } } else if (_arrayInitializerExpression.Parent.HasAnnotationOf<TypeInformation>(out typeInformation)) { ConstructorInfo[] ctors = null; InternalType = typeInformation.InferredType.GetActualType(); ctors = InternalType.GetConstructors(); if (ctors.Length > 1) { _constructor = ctors[0]; } } if (InternalType != null && !InternalType.IsGenericListOrDictionary() && !InternalType.IsArray) { isPropertyAssignment = true; } _initializers = arrayInitializerExpression.Elements .Select(e => e.AcceptVisitor(Visitor, ParentScope)) .ToList(); }
public override void VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression) { if (DoWrap(policy.ArrayInitializerWrapping, arrayInitializerExpression.RBraceToken, arrayInitializerExpression.Elements.Count)) { FixOpenBrace(policy.ArrayInitializerBraceStyle, arrayInitializerExpression.LBraceToken); curIndent.Push(IndentType.Block); foreach (var init in arrayInitializerExpression.Elements) { FixStatementIndentation(init.StartLocation); init.AcceptVisitor(this); } curIndent.Pop(); FixClosingBrace(policy.ArrayInitializerBraceStyle, arrayInitializerExpression.RBraceToken); } else if (policy.ArrayInitializerWrapping == Wrapping.DoNotWrap) { ForceSpacesBeforeRemoveNewLines(arrayInitializerExpression.LBraceToken); ForceSpacesBeforeRemoveNewLines(arrayInitializerExpression.RBraceToken); foreach (var init in arrayInitializerExpression.Elements) { ForceSpacesBeforeRemoveNewLines(init); init.AcceptVisitor(this); } } else { var lBrace = arrayInitializerExpression.LBraceToken; var rBrace = arrayInitializerExpression.RBraceToken; foreach (var child in arrayInitializerExpression.Children) { if (child.Role == Roles.LBrace) { if (lBrace.StartLocation.Line == rBrace.StartLocation.Line && policy.AllowOneLinedArrayInitialziers) { ForceSpaceBefore(child, true); ForceSpacesAfter(child, true); } else { FixOpenBrace(policy.ArrayInitializerBraceStyle, child); } curIndent.Push(IndentType.Block); continue; } if (child.Role == Roles.RBrace) { curIndent.Pop(); if (lBrace.StartLocation.Line == rBrace.StartLocation.Line && policy.AllowOneLinedArrayInitialziers) { ForceSpaceBefore(child, true); } else { FixClosingBrace(policy.ArrayInitializerBraceStyle, child); } continue; } if (child.Role == Roles.Expression) { if (child.PrevSibling.Role == Roles.NewLine) { FixIndentation(child); } if (child.PrevSibling.Role == Roles.Comma) { ForceSpaceBefore(child, true); } if (child.NextSibling.Role == Roles.Comma) { ForceSpacesAfter(child, false); } continue; } child.AcceptVisitor(this); } } }
void IAstVisitor.VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression) { Visit(EnterArrayInitializerExpression, LeaveArrayInitializerExpression, arrayInitializerExpression); }
public virtual S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data) { return(VisitChildren(arrayInitializerExpression, data)); }
protected internal override bool DoMatch(AstNode other, PatternMatching.Match match) { ArrayInitializerExpression o = other as ArrayInitializerExpression; return(o != null && this.Elements.DoMatch(o.Elements, match)); }
private void BuildOneDimensionalInitializers(NRefactory.ArrayInitializerExpression initializer) { Initializers = initializer.Elements .Select(e => e.AcceptVisitor(Visitor, ParentScope)); }
public static ArrayInitializer ArrayInitializer(NRefactory.ArrayInitializerExpression arrayInitializerExpression, IScope scope, INRefcatoryExpressionVisitor visitor) { return(new ArrayInitializer(arrayInitializerExpression, scope, visitor)); }
public virtual S VisitArrayInitializerExpression(ArrayInitializerExpression arrayInitializerExpression, T data) { throw new NotImplementedException(); }
public override AstExpression VisitArrayInitializerExpression(NRefactory.ArrayInitializerExpression arrayInitializerExpression, IScope scope) { return(AstExpression.ArrayInitializer(arrayInitializerExpression, scope, this)); }