1 write to Method
Microsoft.CodeAnalysis.CSharp (1)
Binder\MethodArgumentInfo.cs (1)
28this.Method = method;
60 references to Method
Microsoft.CodeAnalysis.CSharp (60)
Binder\ForEachLoopBinder.cs (27)
234MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo?.Method; 263var placeholder = new BoundAwaitableValuePlaceholder(expr, builder.MoveNextInfo?.Method.ReturnType ?? CreateErrorType()); 473ReportDiagnosticsIfObsolete(diagnostics, builder.MoveNextInfo.Method, foreachKeyword, hasBaseReceiver: false); 476Debug.Assert(!IsDisallowedExtensionInOlderLangVer(builder.MoveNextInfo.Method)); 585builder.GetEnumeratorInfo.Method.IsExtensionMethod || 586builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember())) || 612: builder.PatternDisposeInfo.Method.ReturnType; 877Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.Method.IsExtensionMethod || builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember()); 924Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.Method.IsExtensionMethod || builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember()); 1035Debug.Assert(!(viaExtensionMethod && builder.GetEnumeratorInfo.Method.IsExtensionMethod && builder.GetEnumeratorInfo.Method.Parameters.IsDefaultOrEmpty)); 1036Debug.Assert(!(viaExtensionMethod && !builder.GetEnumeratorInfo.Method.IsExtensionMethod && !builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember())); 1042if (builder.GetEnumeratorInfo.Method.IsExtensionMethod) 1044builder.CollectionType = builder.GetEnumeratorInfo.Method.Parameters[0].Type; 1048builder.CollectionType = builder.GetEnumeratorInfo.Method.ContainingType.ExtensionParameter.Type; 1065MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1195builder.GetEnumeratorInfo.Method.ReturnType.SpecialType == SpecialType.System_Collections_IEnumerator); 1221TypeSymbol enumeratorType = builder.GetEnumeratorInfo.Method.ReturnType; 1334TypeSymbol.Equals(builder.GetEnumeratorInfo.Method.ReturnType, this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator), TypeCompareKind.ConsiderEverything2)); 1645Debug.Assert((object)builder.GetEnumeratorInfo.Method != null); 1647MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1733moveNextMethodCandidate.Method.IsStatic || moveNextMethodCandidate.Method.DeclaredAccessibility != Accessibility.Public || 1734IsInvalidMoveNextMethod(moveNextMethodCandidate.Method, isAsync))
Binder\RefSafetyAnalysis.cs (1)
1119resultType: node.EnumeratorInfoOpt.GetEnumeratorInfo.Method.ContainingType,
Compilation\MemberSemanticModel.cs (3)
975if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var method }) 989enumeratorInfoOpt.GetEnumeratorInfo.Method.GetPublicSymbol(), 990enumeratorInfoOpt.MoveNextInfo.Method.GetPublicSymbol(),
FlowAnalysis\NullableWalker.cs (7)
7102if (node is BoundForEachStatement { EnumeratorInfoOpt: { GetEnumeratorInfo: { Method: { TypeArgumentsWithAnnotations: { IsEmpty: false } } } } }) 11589if (enumeratorInfoOpt?.GetEnumeratorInfo is { Method: { IsExtensionMethod: true, Parameters: var parameters } } enumeratorMethodInfo) // Tracked by https://github.com/dotnet/roslyn/issues/78828: Test this code path with new extensions 11604enumeratorMethodInfo.Method); 11656bool reportedDiagnostic = enumeratorInfoOpt?.GetEnumeratorInfo.Method is { IsExtensionMethod: true } // Tracked by https://github.com/dotnet/roslyn/issues/78828: Test this code path with new extensions 11700reinferredGetEnumeratorMethod = (MethodSymbol)AsMemberOfType(getEnumeratorType, enumeratorInfoOpt.GetEnumeratorInfo.Method); 11722var moveNextAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, enumeratorInfoOpt.MoveNextInfo.Method); 11735if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
232if (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)
177if (!ShouldUseIEnumerableBulkAddMethod(singleSpread.Expression.Type, toListOfElementType.Parameters[0].Type, singleSpread.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 680&& ShouldUseIEnumerableBulkAddMethod(spreadExpression.Type!, linqToArrayMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 1182if (!ShouldUseIEnumerableBulkAddMethod(rewrittenSpreadOperand.Type, addRangeMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method))
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (5)
155TypeSymbol enumeratorType = getEnumeratorInfo.Method.ReturnType; 163var receiver = ConvertReceiverForInvocation(forEachSyntax, rewrittenExpression, getEnumeratorInfo.Method, convertedCollection.Conversion, enumeratorInfo.CollectionType); 168if (getEnumeratorInfo.Method.IsExtensionMethod) 175getEnumeratorInfo.Method, 324MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.Method; // pattern-based
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (2)
445MethodSymbol? disposeMethod = disposeInfo?.Method; 494MethodSymbol method = methodArgumentInfo.Method;
Operations\CSharpOperationFactory.cs (11)
1902enumeratorInfoOpt.GetEnumeratorInfo.Method.GetPublicSymbol(), 1904enumeratorInfoOpt.MoveNextInfo.Method.GetPublicSymbol(), 1911HasImplicitConversionToOrImplementsVarianceCompatibleInterface(enumeratorInfoOpt.GetEnumeratorInfo.Method.ReturnType, 1916enumeratorInfoOpt.PatternDisposeInfo?.Method.GetPublicSymbol(), 1943info.Method, 1947invokedAsExtensionMethod: info.Method.IsExtensionMethod 2039disposeMethod: boundUsingStatement.PatternDisposeInfoOpt.Method.GetPublicSymbol(), 2178disposeMethod: usingDecl.PatternDisposeInfoOpt.Method.GetPublicSymbol(), 2943Debug.Assert(!patternDisposeInfo.Method.IsStatic); 2945if (patternDisposeInfo.Method.ParameterCount == 0) 2951patternDisposeInfo.Method,