Binder\Binder_Conversions.cs (13)
341if (source is BoundMethodGroup methodGroup)
1389var methodGroup = new BoundMethodGroup(
1923addMethodBinder, node, node, (BoundMethodGroup)boundExpression, analyzedArguments, diagnostics, out addMethods);
1934BoundMethodGroup boundExpression,
1949BoundMethodGroup methodGroup,
2058Binder addMethodBinder, SyntaxNode syntax, BoundMethodGroup methodGroup, AnalyzedArguments analyzedArguments, MethodGroupResolution resolution,
2889Error(diagnostics, ErrorCode.WRN_MethGrpToNonDel, syntax, ((BoundMethodGroup)source).Name, destination);
2935BoundMethodGroup m => (m, false),
2939BoundMethodGroup group = FixMethodGroupWithTypeOrValue(originalGroup, conversion, diagnostics);
3247return Binder.IsTypeOrValueExpression(((BoundMethodGroup)node).ReceiverOpt);
3250private BoundMethodGroup FixMethodGroupWithTypeOrValue(BoundMethodGroup group, Conversion conversion, BindingDiagnosticBag diagnostics)
3765BoundMethodGroup boundMethodGroup,
Binder\Binder_Expressions.cs (19)
182if (childNode is BoundMethodGroup methodGroup)
2903!MethodGroupConversionDoesNotExistOrHasErrors((BoundMethodGroup)operand, (NamedTypeSymbol)targetType, syntax.Location, diagnostics, out _))
5621BoundMethodGroup methodGroup = (BoundMethodGroup)argument;
5657var boundMethodGroup = new BoundMethodGroup(
8215var methodGroup = (BoundMethodGroup)expr;
8388private BoundMethodGroup MakeBoundMethodGroupAndCheckOmittedTypeArguments(BoundExpression boundLeft, string rightName,
8392var boundMethodGroup = new BoundMethodGroup(
8426private void BindMemberAccessReportError(BoundMethodGroup node, BindingDiagnosticBag diagnostics)
8520private BoundExpression BindMemberAccessBadResult(BoundMethodGroup node)
11417var boundMethodGroup = new BoundMethodGroup(
11595BoundMethodGroup node,
11617BoundMethodGroup node,
11649BoundMethodGroup methodGroup,
11723BoundMethodGroup node,
11804internal NamedTypeSymbol? GetMethodGroupDelegateType(BoundMethodGroup node)
11823private MethodSymbol? GetUniqueSignatureFromMethodGroup_CSharp10(BoundMethodGroup node, out bool useParams)
12004private MethodSymbol? GetUniqueSignatureFromMethodGroup(BoundMethodGroup node, out bool useParams)
Binder\Binder_Invocation.cs (12)
362node, expression, methodName, (BoundMethodGroup)boundExpression, analyzedArguments,
413BoundMethodGroup methodGroup = (BoundMethodGroup)expression;
702BoundMethodGroup methodGroup,
739BoundMethodGroup methodGroup,
752BoundExpression bindMethodGroupInvocationCore(SyntaxNode syntax, SyntaxNode expression, string methodName, BoundMethodGroup methodGroup, AnalyzedArguments analyzedArguments, MethodGroupResolution resolution, BindingDiagnosticBag diagnostics, CSharpSyntaxNode queryClause, out bool anyApplicableCandidates)
910private void ReportDynamicInvocationWarnings(SyntaxNode syntax, BoundMethodGroup methodGroup, BindingDiagnosticBag diagnostics, ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates)
947BoundMethodGroup boundMethodGroup,
1002BoundMethodGroup boundMethodGroup,
2359var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty;
2408if (boundArgument is BoundMethodGroup methodGroup)
2462private void EnsureNameofExpressionSymbols(BoundMethodGroup methodGroup, BindingDiagnosticBag diagnostics)
Binder\Semantics\Conversions\Conversions.cs (4)
44public override Conversion GetMethodGroupDelegateConversion(BoundMethodGroup source, TypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
115public override Conversion GetMethodGroupFunctionPointerConversion(BoundMethodGroup source, FunctionPointerTypeSymbol destination, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
264private static MethodGroupResolution ResolveDelegateOrFunctionPointerMethodGroup(Binder binder, BoundMethodGroup source, MethodSymbol delegateInvokeMethodOpt, bool isFunctionPointer, in CallingConventionInfo callingConventionInfo, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
313public static bool ReportDelegateOrFunctionPointerMethodGroupDiagnostics(Binder binder, BoundMethodGroup expr, TypeSymbol targetType, BindingDiagnosticBag diagnostics)
FlowAnalysis\NullableWalker.cs (10)
8846internal override TypeWithAnnotations GetMethodGroupResultType(BoundMethodGroup group, MethodSymbol method)
9880var group = conversionOperand as BoundMethodGroup;
10884case BoundMethodGroup group:
10940Action<NamedTypeSymbol>? visitMethodGroupArgument(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group)
10948Action<NamedTypeSymbol>? analyzeMethodGroupConversion(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group, bool isTargetTyped)
10969Action<NamedTypeSymbol>? analyzeMethodGroupConversionAsContinuation(BoundDelegateCreationExpression node, BoundMethodGroup group)
11046public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
11085private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
13334var receiverOpt = (expr as BoundMethodGroup)?.ReceiverOpt;
Generated\BoundNodes.xml.Generated.cs (17)
1326public BoundUnconvertedAddressOfOperator(SyntaxNode syntax, BoundMethodGroup operand, bool hasErrors = false)
1335public BoundMethodGroup Operand { get; }
1341public BoundUnconvertedAddressOfOperator Update(BoundMethodGroup operand)
6172public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind)
6176var result = new BoundMethodGroup(this.Syntax, typeArgumentsOpt, name, methods, lookupSymbolOpt, lookupError, flags, functionType, receiverOpt, resultKind, this.HasErrors);
9405return VisitMethodGroup((BoundMethodGroup)node, arg);
9724public virtual R VisitMethodGroup(BoundMethodGroup node, A arg) => this.DefaultVisit(node, arg);
9965public virtual BoundNode? VisitMethodGroup(BoundMethodGroup node) => this.DefaultVisit(node);
10735public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
11285BoundMethodGroup operand = (BoundMethodGroup)this.Visit(node.Operand);
12154public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
13087BoundMethodGroup operand = (BoundMethodGroup)this.Visit(node.Operand);
14392public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
14398BoundMethodGroup updatedNode;
16902public override TreeDumperNode VisitMethodGroup(BoundMethodGroup node, object? arg) => new TreeDumperNode("methodGroup", null, new TreeDumperNode[]
Lowering\DiagnosticsPass_ExpressionTrees.cs (5)
859CheckMethodGroup((BoundMethodGroup)node.Operand, node.Conversion.Method, node.IsExtensionMethod, parentIsConversion: true, node.Type);
934CheckMethodGroup((BoundMethodGroup)node.Argument, node.MethodOpt, node.IsExtensionMethod, parentIsConversion: true, convertedToType: node.Type);
940public override BoundNode VisitMethodGroup(BoundMethodGroup node)
946private void CheckMethodGroup(BoundMethodGroup node, MethodSymbol method, bool isExtensionMethod, bool parentIsConversion, TypeSymbol convertedToType)
1014return base.VisitMethodGroup((BoundMethodGroup)node.Expression);