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