1 write to EnumeratorInfoOpt
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
4047this.EnumeratorInfoOpt = enumeratorInfoOpt;
58 references to EnumeratorInfoOpt
Microsoft.CodeAnalysis.CSharp (22)
Binder\RefSafetyAnalysis.cs (3)
1240if (node.EnumeratorInfoOpt is { InlineArraySpanType: not WellKnownType.Unknown and var spanType, InlineArrayUsedAsValue: false }) 1248resultType: node.EnumeratorInfoOpt.GetEnumeratorInfo.Method.ContainingType, 1274if (node.EnumeratorInfoOpt is { MoveNextAwaitableInfo: { } awaitableInfo })
Compilation\MemberSemanticModel.cs (1)
983ForEachEnumeratorInfo enumeratorInfoOpt = boundForEach.EnumeratorInfoOpt;
FlowAnalysis\ExitPointsWalker.cs (1)
143case BoundKind.ForEachStatement when ((BoundForEachStatement)pending.Branch).EnumeratorInfoOpt is { MoveNextAwaitableInfo: not null }:
FlowAnalysis\NullableWalker.cs (3)
11685Visit(node.EnumeratorInfoOpt?.MoveNextAwaitableInfo); 11697node.EnumeratorInfoOpt); 11915var sourceState = node.EnumeratorInfoOpt == null ? default : ResultType;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
217if (node.EnumeratorInfoOpt != null) 219VisitForEachEnumeratorInfo(node.EnumeratorInfoOpt);
Generated\BoundNodes.xml.Generated.cs (4)
4073if (enumeratorInfoOpt != this.EnumeratorInfoOpt || elementPlaceholder != this.ElementPlaceholder || elementConversion != this.ElementConversion || iterationVariableType != this.IterationVariableType || iterationVariables != this.IterationVariables || iterationErrorExpressionOpt != this.IterationErrorExpressionOpt || expression != this.Expression || deconstructionOpt != this.DeconstructionOpt || body != this.Body || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(breakLabel, this.BreakLabel) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(continueLabel, this.ContinueLabel)) 11509return node.Update(node.EnumeratorInfoOpt, elementPlaceholder, elementConversion, iterationVariableType, iterationVariables, iterationErrorExpressionOpt, expression, deconstructionOpt, body, breakLabel, continueLabel); 13614return node.Update(node.EnumeratorInfoOpt, elementPlaceholder, elementConversion, iterationVariableType, iterationVariables, iterationErrorExpressionOpt, expression, deconstructionOpt, body, node.BreakLabel, node.ContinueLabel); 16049new TreeDumperNode("enumeratorInfoOpt", node.EnumeratorInfoOpt, null),
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (5)
57else if (node.EnumeratorInfoOpt is { InlineArraySpanType: not WellKnownType.Unknown }) 61else if (node.EnumeratorInfoOpt?.MoveNextAwaitableInfo is null && CanRewriteForEachAsFor(node.Syntax, nodeExpressionType, out var indexerGet, out var lengthGetter)) 121ForEachEnumeratorInfo? enumeratorInfo = node.EnumeratorInfoOpt; 566Debug.Assert(node.EnumeratorInfoOpt is not null); 574node.EnumeratorInfoOpt,
Operations\CSharpOperationFactory.cs (3)
1889ForEachEnumeratorInfo? enumeratorInfoOpt = boundForEachStatement.EnumeratorInfoOpt; 1977IOperation collection = Create(boundForEachStatement.EnumeratorInfoOpt?.InlineArraySpanType is null or WellKnownType.Unknown || 1991bool isAsynchronous = boundForEachStatement.EnumeratorInfoOpt is { MoveNextAwaitableInfo: not null };
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (12)
CodeGen\CodeGenAwaitForeachTests.cs (12)
2481ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 4409ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 4893ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 5026ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 5222ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 5345ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 5479ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 6953ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 7109ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 7388ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 8073ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt; 8217ForEachEnumeratorInfo internalInfo = boundNode.EnumeratorInfoOpt;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (24)
Semantics\ForEachTests.cs (24)
1205ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1243ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1287ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1331ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1364ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1404ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1446ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1485ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1518ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1549ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1590Assert.NotNull(boundNode.EnumeratorInfoOpt); 1614Assert.NotNull(boundNode.EnumeratorInfoOpt); 1635ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1666ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1699ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1740ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1824ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1871ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 1936Assert.Null(boundNode.EnumeratorInfoOpt); 3115ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 3161var enumeratorInfo = boundNode.EnumeratorInfoOpt; 3200var enumeratorInfo = boundNode.EnumeratorInfoOpt; 3233ForEachEnumeratorInfo info = boundNode.EnumeratorInfoOpt; 3267ForEachEnumeratorInfo enumeratorInfo = boundNode.EnumeratorInfoOpt;