1 write to Method
Microsoft.CodeAnalysis.CSharp (1)
Binder\MethodArgumentInfo.cs (1)
28this.Method = method;
62 references to Method
Microsoft.CodeAnalysis.CSharp (62)
Binder\ForEachLoopBinder.cs (26)
234MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo?.Method; 263var placeholder = new BoundAwaitableValuePlaceholder(expr, builder.MoveNextInfo?.Method.ReturnType ?? CreateErrorType()); 471ReportDiagnosticsIfObsolete(diagnostics, builder.MoveNextInfo.Method, foreachKeyword, hasBaseReceiver: false); 581builder.GetEnumeratorInfo.Method.IsExtensionMethod || 582builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember())) || 608: builder.PatternDisposeInfo.Method.ReturnType; 873Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.Method.IsExtensionMethod || builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember()); 920Debug.Assert(!builder.ViaExtensionMethod || builder.GetEnumeratorInfo.Method.IsExtensionMethod || builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember()); 1031Debug.Assert(!(viaExtensionMethod && builder.GetEnumeratorInfo.Method.IsExtensionMethod && builder.GetEnumeratorInfo.Method.Parameters.IsDefaultOrEmpty)); 1032Debug.Assert(!(viaExtensionMethod && !builder.GetEnumeratorInfo.Method.IsExtensionMethod && !builder.GetEnumeratorInfo.Method.GetIsNewExtensionMember())); 1038if (builder.GetEnumeratorInfo.Method.IsExtensionMethod) 1040builder.CollectionType = builder.GetEnumeratorInfo.Method.Parameters[0].Type; 1044builder.CollectionType = builder.GetEnumeratorInfo.Method.ContainingType.ExtensionParameter.Type; 1061MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1191builder.GetEnumeratorInfo.Method.ReturnType.SpecialType == SpecialType.System_Collections_IEnumerator); 1217TypeSymbol enumeratorType = builder.GetEnumeratorInfo.Method.ReturnType; 1330TypeSymbol.Equals(builder.GetEnumeratorInfo.Method.ReturnType, this.Compilation.GetSpecialType(SpecialType.System_Collections_IEnumerator), TypeCompareKind.ConsiderEverything2)); 1641Debug.Assert((object)builder.GetEnumeratorInfo.Method != null); 1643MethodSymbol getEnumeratorMethod = builder.GetEnumeratorInfo.Method; 1729moveNextMethodCandidate.Method.IsStatic || moveNextMethodCandidate.Method.DeclaredAccessibility != Accessibility.Public || 1730IsInvalidMoveNextMethod(moveNextMethodCandidate.Method, isAsync))
Binder\RefSafetyAnalysis.cs (1)
1080resultType: node.EnumeratorInfoOpt.GetEnumeratorInfo.Method.ContainingType,
Compilation\MemberSemanticModel.cs (3)
974if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var method }) 988enumeratorInfoOpt.GetEnumeratorInfo.Method.GetPublicSymbol(), 989enumeratorInfoOpt.MoveNextInfo.Method.GetPublicSymbol(),
FlowAnalysis\NullableWalker.cs (7)
6837if (node is BoundForEachStatement { EnumeratorInfoOpt: { GetEnumeratorInfo: { Method: { TypeArgumentsWithAnnotations: { IsEmpty: false } } } } }) 11078if (enumeratorInfoOpt?.GetEnumeratorInfo is { Method: { IsExtensionMethod: true, Parameters: var parameters } } enumeratorMethodInfo) // Tracked by https://github.com/dotnet/roslyn/issues/76130: Test this code path with new extensions 11093enumeratorMethodInfo.Method); 11145bool reportedDiagnostic = enumeratorInfoOpt?.GetEnumeratorInfo.Method is { IsExtensionMethod: true } // Tracked by https://github.com/dotnet/roslyn/issues/76130: Test this code path with new extensions 11189reinferredGetEnumeratorMethod = (MethodSymbol)AsMemberOfType(getEnumeratorType, enumeratorInfoOpt.GetEnumeratorInfo.Method); 11211var moveNextAsyncMethod = (MethodSymbol)AsMemberOfType(reinferredGetEnumeratorMethod.ReturnType, enumeratorInfoOpt.MoveNextInfo.Method); 11224if (enumeratorInfoOpt.PatternDisposeInfo is { Method: var originalDisposeMethod }) // no statically known Dispose method if doing a runtime check
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
234if (enumeratorInfo.GetEnumeratorInfo.Method.IsExtensionMethod) // Tracked by https://github.com/dotnet/roslyn/issues/76130: Test this code path with new extensions
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (3)
178if (!ShouldUseIEnumerableBulkAddMethod(singleSpread.Expression.Type, toListOfElementType.Parameters[0].Type, singleSpread.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 681&& ShouldUseIEnumerableBulkAddMethod(spreadExpression.Type!, linqToArrayMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method)) 1183if (!ShouldUseIEnumerableBulkAddMethod(rewrittenSpreadOperand.Type, addRangeMethod.Parameters[0].Type, spreadElement.EnumeratorInfoOpt?.GetEnumeratorInfo.Method))
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (8)
154TypeSymbol enumeratorType = getEnumeratorInfo.Method.ReturnType; 162var receiver = ConvertReceiverForInvocation(forEachSyntax, rewrittenExpression, getEnumeratorInfo.Method, convertedCollection.Conversion, enumeratorInfo.CollectionType); 167if (getEnumeratorInfo.Method.IsExtensionMethod) 174getEnumeratorInfo.Method, 184allowExtensionAndOptionalParameters: isAsync || getEnumeratorInfo.Method.IsExtensionMethod || getEnumeratorInfo.Method.GetIsNewExtensionMember(), firstRewrittenArgument: firstRewrittenArgument); 324MethodSymbol? disposeMethod = enumeratorInfo.PatternDisposeInfo?.Method; // pattern-based 548return BoundCall.Synthesized(syntax, receiver, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, methodArgumentInfo.Method, arguments: ImmutableArray<BoundExpression>.Empty);
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,