1 write to PatternDisposeInfo
Microsoft.CodeAnalysis.CSharp (1)
Binder\ForEachEnumeratorInfo.cs (1)
75this.PatternDisposeInfo = patternDisposeInfo;
14 references to PatternDisposeInfo
Microsoft.CodeAnalysis.CSharp (8)
Compilation\MemberSemanticModel.cs (1)
965if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var method })
FlowAnalysis\NullableWalker.cs (1)
10127if (node.EnumeratorInfoOpt.PatternDisposeInfo is { Method: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (3)
259MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.Method; // pattern-based 287if (isImplicit || !(enumeratorInfo.PatternDisposeInfo is null)) 295var disposeInfo = enumeratorInfo.PatternDisposeInfo;
Operations\CSharpOperationFactory.cs (3)
1806enumeratorInfoOpt.PatternDisposeInfo?.Method.GetPublicSymbol(), 1811disposeArguments: enumeratorInfoOpt.PatternDisposeInfo is object 1812? CreateDisposeArguments(enumeratorInfoOpt.PatternDisposeInfo, boundForEachStatement.Syntax)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (6)
Semantics\ForEachTests.cs (6)
3162Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.Method.ToTestDisplayString()); 3163Assert.Empty(enumeratorInfo.PatternDisposeInfo.Arguments); 3201Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.Method.ToTestDisplayString()); 3202Assert.Empty(enumeratorInfo.PatternDisposeInfo.Arguments); 3281if (enumeratorInfo.PatternDisposeInfo is object) 3283Assert.Equal(enumeratorInfo.PatternDisposeInfo.Method.GetPublicSymbol(), statementInfo.DisposeMethod);