1 write to PatternDisposeInfo
Microsoft.CodeAnalysis.CSharp (1)
Binder\ForEachEnumeratorInfo.cs (1)
88this.PatternDisposeInfo = patternDisposeInfo;
14 references to PatternDisposeInfo
Microsoft.CodeAnalysis.CSharp (8)
Compilation\MemberSemanticModel.cs (1)
975if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var method })
FlowAnalysis\NullableWalker.cs (1)
11735if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (3)
324MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.Method; // pattern-based 351if (implementsInterface || !(enumeratorInfo.PatternDisposeInfo is null)) 359var disposeInfo = enumeratorInfo.PatternDisposeInfo;
Operations\CSharpOperationFactory.cs (3)
1916enumeratorInfoOpt.PatternDisposeInfo?.Method.GetPublicSymbol(), 1921disposeArguments: enumeratorInfoOpt.PatternDisposeInfo is object 1922? CreateDisposeArguments(enumeratorInfoOpt.PatternDisposeInfo)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (6)
Semantics\ForEachTests.cs (6)
3163Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.Method.ToTestDisplayString()); 3164Assert.Empty(enumeratorInfo.PatternDisposeInfo.Arguments); 3202Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.Method.ToTestDisplayString()); 3203Assert.Empty(enumeratorInfo.PatternDisposeInfo.Arguments); 3282if (enumeratorInfo.PatternDisposeInfo is object) 3284Assert.Equal(enumeratorInfo.PatternDisposeInfo.Method.GetPublicSymbol(), statementInfo.DisposeMethod);