private void AnalyzeForLoop([NotNull] IForLoopOperation forLoopOperation, OperationAnalysisContext context) { foreach (IOperation beforeOperation in forLoopOperation.Before) { AnalyzeForLoopSection(ForLoopSection.Before, beforeOperation, context); } AnalyzeForLoopSection(ForLoopSection.Condition, forLoopOperation.Condition, context); foreach (IOperation bottomOperation in forLoopOperation.AtLoopBottom) { AnalyzeForLoopSection(ForLoopSection.AtLoopBottom, bottomOperation, context); } }
public override void VisitForLoop(IForLoopOperation operation) { Assert.Equal(OperationKind.Loop, operation.Kind); Assert.Equal(LoopKind.For, operation.LoopKind); VisitLocals(operation); IEnumerable <IOperation> children = operation.Before; if (operation.Condition != null) { children = children.Concat(new[] { operation.Condition }); } children = children.Concat(new[] { operation.Body }); children = children.Concat(operation.AtLoopBottom); AssertEx.Equal(children, operation.Children); }
public override void VisitForLoop([NotNull] IForLoopOperation operation) { if (section == ForLoopSection.Before) { VisitArray(operation.Before); } else if (section == ForLoopSection.Condition) { Visit(operation.Condition); } else if (section == ForLoopSection.AtLoopBottom) { VisitArray(operation.AtLoopBottom); } // ReSharper disable once RedundantIfElseBlock else { // No action required. } }
public override void VisitForLoop([NotNull] IForLoopOperation operation) { switch (section) { case ForLoopSection.Before: { VisitArray(operation.Before); break; } case ForLoopSection.Condition: { Visit(operation.Condition); break; } case ForLoopSection.AtLoopBottom: { VisitArray(operation.AtLoopBottom); break; } } }
public override IOperation VisitForLoop(IForLoopOperation operation, object argument) { return(new ForLoopStatement(VisitArray(operation.Before), Visit(operation.Condition), VisitArray(operation.AtLoopBottom), operation.Locals, operation.ConditionLocals, operation.ContinueLabel, operation.ExitLabel, Visit(operation.Body), ((Operation)operation).SemanticModel, operation.Syntax, operation.Type, operation.ConstantValue, operation.IsImplicit)); }
public virtual void VisitForLoop(IForLoopOperation operation) { DefaultVisit(operation); }
public override void VisitForLoop([NotNull] IForLoopOperation operation) { base.VisitForLoop(operation); }
public override void VisitForLoop([NotNull] IForLoopOperation operation) { IncrementStatementCount(operation); base.VisitForLoop(operation); }
public override Location VisitForLoop([NotNull] IForLoopOperation operation, [CanBeNull] object argument) { var syntax = (ForStatementSyntax)operation.Syntax; return(syntax.ForKeyword.GetLocation()); }
public override void VisitForLoop(IForLoopOperation operation) { WalkLoop(operation); base.VisitForLoop(operation); }
public override bool VisitForLoop([NotNull] IForLoopOperation operation1, [CanBeNull] IOperation argument) { return(argument is IForLoopOperation operation2 && AreBaseOperationsEqual(operation1, operation2) && operation1.LoopKind == operation2.LoopKind && AreSymbolSequencesEqual(operation1.Locals, operation2.Locals)); }
public override void VisitForLoop([NotNull] IForLoopOperation operation) { LoopStatementLocation = operation.GetLocationForKeyword(); }