1 write to EnumeratorInfoOpt
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
3936
this.
EnumeratorInfoOpt
= enumeratorInfoOpt;
58 references to EnumeratorInfoOpt
Microsoft.CodeAnalysis.CSharp (22)
Compilation\MemberSemanticModel.cs (1)
940
ForEachEnumeratorInfo enumeratorInfoOpt = boundForEach.
EnumeratorInfoOpt
;
FlowAnalysis\NullableWalker.cs (11)
6077
if (node is BoundForEachStatement {
EnumeratorInfoOpt
: { GetEnumeratorInfo: { Method: { TypeArgumentsWithAnnotations: { IsEmpty: false } } } } })
9998
if (node.
EnumeratorInfoOpt
?.GetEnumeratorInfo is { Method: { IsExtensionMethod: true, Parameters: var parameters } } enumeratorMethodInfo)
10065
bool reportedDiagnostic = node.
EnumeratorInfoOpt
?.GetEnumeratorInfo.Method is { IsExtensionMethod: true }
10073
if (node.
EnumeratorInfoOpt
is null)
10088
TypeWithAnnotations.Create(node.
EnumeratorInfoOpt
.ElementType, NullableAnnotation.NotAnnotated).ToTypeWithState();
10094
reinferredGetEnumeratorMethod ??= (MethodSymbol)AsMemberOfType(convertedResult.Type, node.
EnumeratorInfoOpt
.GetEnumeratorInfo.Method);
10105
var currentPropertyGetter = (MethodSymbol)AsMemberOfType(enumeratorReturnType.Type, node.
EnumeratorInfoOpt
.CurrentPropertyGetter);
10114
var moveNextAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, node.
EnumeratorInfoOpt
.MoveNextInfo.Method);
10123
if (node.
EnumeratorInfoOpt
is { NeedsDisposal: true, DisposeAwaitableInfo: BoundAwaitableInfo awaitDisposalInfo })
10127
if (node.
EnumeratorInfoOpt
.PatternDisposeInfo is { Method: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
10151
var sourceState = node.
EnumeratorInfoOpt
== null ? default : ResultType;
FlowAnalysis\NullableWalker.DebugVerifier.cs (4)
137
if (node.
EnumeratorInfoOpt
!= null)
139
Visit(node.
EnumeratorInfoOpt
.DisposeAwaitableInfo);
140
if (node.
EnumeratorInfoOpt
.GetEnumeratorInfo.Method.IsExtensionMethod)
142
foreach (var arg in node.
EnumeratorInfoOpt
.GetEnumeratorInfo.Arguments)
Generated\BoundNodes.xml.Generated.cs (4)
3964
if (enumeratorInfoOpt != this.
EnumeratorInfoOpt
|| elementPlaceholder != this.ElementPlaceholder || elementConversion != this.ElementConversion || iterationVariableType != this.IterationVariableType || iterationVariables != this.IterationVariables || iterationErrorExpressionOpt != this.IterationErrorExpressionOpt || expression != this.Expression || deconstructionOpt != this.DeconstructionOpt || awaitOpt != this.AwaitOpt || body != this.Body || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(breakLabel, this.BreakLabel) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(continueLabel, this.ContinueLabel))
11002
return node.Update(node.
EnumeratorInfoOpt
, elementPlaceholder, elementConversion, iterationVariableType, node.IterationVariables, iterationErrorExpressionOpt, expression, deconstructionOpt, awaitOpt, body, node.BreakLabel, node.ContinueLabel);
12973
return node.Update(node.
EnumeratorInfoOpt
, elementPlaceholder, elementConversion, iterationVariableType, iterationVariables, iterationErrorExpressionOpt, expression, deconstructionOpt, awaitOpt, body, node.BreakLabel, node.ContinueLabel);
15312
new TreeDumperNode("enumeratorInfoOpt", node.
EnumeratorInfoOpt
, null),
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (1)
110
ForEachEnumeratorInfo? enumeratorInfo = node.
EnumeratorInfoOpt
;
Operations\CSharpOperationFactory.cs (1)
1782
ForEachEnumeratorInfo? enumeratorInfoOpt = boundForEachStatement.
EnumeratorInfoOpt
;
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (12)
CodeGen\CodeGenAwaitForeachTests.cs (12)
1674
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2131
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2450
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2508
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2698
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2746
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
2879
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
3627
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
3700
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
3810
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
4136
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
4217
ForEachEnumeratorInfo internalInfo = boundNode.
EnumeratorInfoOpt
;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (24)
Semantics\ForEachTests.cs (24)
1204
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1242
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1286
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1330
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1363
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1403
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1445
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1484
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1517
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1548
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1589
Assert.NotNull(boundNode.
EnumeratorInfoOpt
);
1613
Assert.NotNull(boundNode.
EnumeratorInfoOpt
);
1634
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1665
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1698
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1739
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1823
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1870
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
1935
Assert.Null(boundNode.
EnumeratorInfoOpt
);
3114
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
3160
var enumeratorInfo = boundNode.
EnumeratorInfoOpt
;
3199
var enumeratorInfo = boundNode.
EnumeratorInfoOpt
;
3232
ForEachEnumeratorInfo info = boundNode.
EnumeratorInfoOpt
;
3266
ForEachEnumeratorInfo enumeratorInfo = boundNode.
EnumeratorInfoOpt
;