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