1 write to Method
Microsoft.CodeAnalysis.CSharp (1)
Binder\MethodArgumentInfo.cs (1)
28
this.
Method
= method;
101 references to Method
Microsoft.CodeAnalysis.CSharp (60)
Binder\ForEachLoopBinder.cs (27)
234
MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo?.
Method
;
263
var placeholder = new BoundAwaitableValuePlaceholder(expr, builder.MoveNextInfo?.
Method
.ReturnType ?? CreateErrorType());
472
ReportDiagnosticsIfObsolete(diagnostics, builder.MoveNextInfo.
Method
, foreachKeyword, hasBaseReceiver: false);
475
Debug.Assert(!IsDisallowedExtensionInOlderLangVer(builder.MoveNextInfo.
Method
));
589
builder.GetEnumeratorInfo.
Method
.IsExtensionMethod ||
590
builder.GetEnumeratorInfo.
Method
.IsExtensionBlockMember())) ||
615
: builder.PatternDisposeInfo.
Method
.ReturnType;
880
Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.
Method
.IsExtensionMethod || builder.GetEnumeratorInfo.
Method
.IsExtensionBlockMember());
927
Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.
Method
.IsExtensionMethod || builder.GetEnumeratorInfo.
Method
.IsExtensionBlockMember());
1029
Debug.Assert(!(viaExtensionMethod && builder.GetEnumeratorInfo.
Method
.IsExtensionMethod && builder.GetEnumeratorInfo.
Method
.Parameters.IsDefaultOrEmpty));
1030
Debug.Assert(!(viaExtensionMethod && !builder.GetEnumeratorInfo.
Method
.IsExtensionMethod && !builder.GetEnumeratorInfo.
Method
.IsExtensionBlockMember()));
1036
if (builder.GetEnumeratorInfo.
Method
.IsExtensionMethod)
1038
builder.CollectionType = builder.GetEnumeratorInfo.
Method
.Parameters[0].Type;
1042
builder.CollectionType = builder.GetEnumeratorInfo.
Method
.ContainingType.ExtensionParameter.Type;
1059
MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.
Method
;
1184
builder.GetEnumeratorInfo.
Method
.ReturnType.SpecialType == SpecialType.System_Collections_IEnumerator);
1199
TypeSymbol enumeratorType = builder.GetEnumeratorInfo.
Method
.ReturnType;
1315
TypeSymbol.Equals(builder.GetEnumeratorInfo.
Method
.ReturnType, this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator), TypeCompareKind.ConsiderEverything2));
1631
Debug.Assert((object)builder.GetEnumeratorInfo.
Method
!= null);
1633
MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.
Method
;
1719
moveNextMethodCandidate.
Method
.IsStatic || moveNextMethodCandidate.
Method
.DeclaredAccessibility != Accessibility.Public ||
1720
IsInvalidMoveNextMethod(moveNextMethodCandidate.
Method
, isAsync))
Binder\RefSafetyAnalysis.cs (1)
1268
resultType: node.EnumeratorInfoOpt.GetEnumeratorInfo.
Method
.ContainingType,
Compilation\MemberSemanticModel.cs (3)
1011
if (enumeratorInfoOpt.PatternDisposeInfo is {
Method
: var method })
1025
enumeratorInfoOpt.GetEnumeratorInfo.
Method
.GetPublicSymbol(),
1026
enumeratorInfoOpt.MoveNextInfo.
Method
.GetPublicSymbol(),
FlowAnalysis\NullableWalker.cs (7)
11740
&& (enumeratorMethodInfo.
Method
.IsExtensionMethod || enumeratorMethodInfo.
Method
.IsExtensionBlockMember()))
11750
method: enumeratorMethodInfo.
Method
,
11810
bool reportedDiagnostic = enumeratorInfoOpt?.GetEnumeratorInfo.
Method
is { } getEnumeratorMethod
11855
reinferredGetEnumeratorMethod = (MethodSymbol)AsMemberOfType(getEnumeratorType, enumeratorInfoOpt.GetEnumeratorInfo.
Method
);
11877
var moveNextAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, enumeratorInfoOpt.MoveNextInfo.
Method
);
11890
if (enumeratorInfoOpt.PatternDisposeInfo is {
Method
: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
232
if (enumeratorInfo.GetEnumeratorInfo.
Method
.IsExtensionMethod) // Tracked by https://github.com/dotnet/roslyn/issues/78828: Test this code path with new extensions
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (3)
162
if (!ShouldUseIEnumerableBulkAddMethod(singleSpread.Expression.Type, toListOfElementType.Parameters[0].Type, singleSpread.EnumeratorInfoOpt?.GetEnumeratorInfo.
Method
))
750
&& ShouldUseIEnumerableBulkAddMethod(spreadExpression.Type!, linqToArrayMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.
Method
))
1303
if (!ShouldUseIEnumerableBulkAddMethod(rewrittenSpreadOperand.Type, addRangeMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.
Method
))
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (5)
158
TypeSymbol enumeratorType = getEnumeratorInfo.
Method
.ReturnType;
166
var receiver = ConvertReceiverForInvocation(forEachSyntax, rewrittenExpression, getEnumeratorInfo.
Method
, convertedCollection.Conversion, enumeratorInfo.CollectionType);
171
if (getEnumeratorInfo.
Method
.IsExtensionMethod)
178
getEnumeratorInfo.
Method
,
328
MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.
Method
; // pattern-based
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (2)
445
MethodSymbol? disposeMethod = disposeInfo?.
Method
;
494
MethodSymbol method = methodArgumentInfo.
Method
;
Operations\CSharpOperationFactory.cs (11)
1893
enumeratorInfoOpt.GetEnumeratorInfo.
Method
.GetPublicSymbol(),
1895
enumeratorInfoOpt.MoveNextInfo.
Method
.GetPublicSymbol(),
1902
HasImplicitConversionToOrImplementsVarianceCompatibleInterface(enumeratorInfoOpt.GetEnumeratorInfo.
Method
.ReturnType,
1907
enumeratorInfoOpt.PatternDisposeInfo?.
Method
.GetPublicSymbol(),
1934
info.
Method
,
1938
invokedAsExtensionMethod: info.
Method
.IsExtensionMethod
2030
disposeMethod: boundUsingStatement.PatternDisposeInfoOpt.
Method
.GetPublicSymbol(),
2169
disposeMethod: usingDecl.PatternDisposeInfoOpt.
Method
.GetPublicSymbol(),
2934
Debug.Assert(!patternDisposeInfo.
Method
.IsStatic);
2936
if (patternDisposeInfo.
Method
.ParameterCount == 0)
2942
patternDisposeInfo.
Method
,
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (41)
Semantics\ForEachTests.cs (41)
1725
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1728
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
1763
Assert.Equal("System.CharEnumerator System.String.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1766
Assert.Equal("System.Boolean System.CharEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
1807
Assert.Equal("Enumerator Enumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1810
Assert.Equal("System.Boolean Enumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
1851
Assert.Equal("Enumerator Enumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1854
Assert.Equal("System.Boolean Enumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
1884
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1887
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
1924
Assert.Equal("System.Collections.Generic.IEnumerator<System.Int32> System.Collections.Generic.IEnumerable<System.Int32>.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1927
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString()); //NB: not on generic interface
1966
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
1969
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2005
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2008
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2038
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2041
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2069
Assert.Equal("System.CharEnumerator System.String.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2072
Assert.Equal("System.Boolean System.CharEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2155
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2158
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2186
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2189
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2219
Assert.Equal("System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2222
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2260
Assert.Equal("T Enumerable<T>.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2263
Assert.Equal("System.Boolean System.Collections.IEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2344
Assert.Equal("T Enumerable<T>.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2347
Assert.Equal("System.Boolean MyEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
2391
Assert.Equal("Enumerator Enumerable.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
2394
Assert.Equal("System.Boolean Enumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
3635
Assert.Equal("System.CharEnumerator System.String.GetEnumerator()", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
3638
Assert.Equal("System.Boolean System.CharEnumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
3679
Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.
Method
.ToTestDisplayString());
3718
Assert.Equal("void DisposableEnumerator.Dispose()", enumeratorInfo.PatternDisposeInfo.
Method
.ToTestDisplayString());
3753
Assert.Equal("C.Enumerator Extensions.GetEnumerator(this C self)", info.GetEnumeratorInfo.
Method
.ToTestDisplayString());
3756
Assert.Equal("System.Boolean C.Enumerator.MoveNext()", info.MoveNextInfo.
Method
.ToTestDisplayString());
3792
Assert.Equal(enumeratorInfo.GetEnumeratorInfo.
Method
.GetPublicSymbol(), statementInfo.GetEnumeratorMethod);
3794
Assert.Equal(enumeratorInfo.MoveNextInfo.
Method
.GetPublicSymbol(), statementInfo.MoveNextMethod);
3800
Assert.Equal(enumeratorInfo.PatternDisposeInfo.
Method
.GetPublicSymbol(), statementInfo.DisposeMethod);