Binder\Binder_Conversions.cs (13)
296if (source is BoundMethodGroup methodGroup)
1315var methodGroup = new BoundMethodGroup(
1846addMethodBinder, node, node, (BoundMethodGroup)boundExpression, analyzedArguments, diagnostics, out addMethods);
1857BoundMethodGroup boundExpression,
1872BoundMethodGroup methodGroup,
1980Binder addMethodBinder, SyntaxNode syntax, BoundMethodGroup methodGroup, AnalyzedArguments analyzedArguments, MethodGroupResolution resolution,
2682Error(diagnostics, ErrorCode.WRN_MethGrpToNonDel, syntax, ((BoundMethodGroup)source).Name, destination);
2728BoundMethodGroup m => (m, false),
2732BoundMethodGroup group = FixMethodGroupWithTypeOrValue(originalGroup, conversion, diagnostics);
3038return Binder.IsTypeOrValueExpression(((BoundMethodGroup)node).ReceiverOpt);
3041private BoundMethodGroup FixMethodGroupWithTypeOrValue(BoundMethodGroup group, Conversion conversion, BindingDiagnosticBag diagnostics)
3555BoundMethodGroup boundMethodGroup,
Binder\Binder_Expressions.cs (19)
182if (childNode is BoundMethodGroup methodGroup)
2899!MethodGroupConversionDoesNotExistOrHasErrors((BoundMethodGroup)operand, (NamedTypeSymbol)targetType, syntax.Location, diagnostics, out _))
5601BoundMethodGroup methodGroup = (BoundMethodGroup)argument;
5637var boundMethodGroup = new BoundMethodGroup(
8192var methodGroup = (BoundMethodGroup)expr;
8365private BoundMethodGroup MakeBoundMethodGroupAndCheckOmittedTypeArguments(BoundExpression boundLeft, string rightName,
8369var boundMethodGroup = new BoundMethodGroup(
8403private void BindMemberAccessReportError(BoundMethodGroup node, BindingDiagnosticBag diagnostics)
8497private BoundExpression BindMemberAccessBadResult(BoundMethodGroup node)
10741var boundMethodGroup = new BoundMethodGroup(
10864BoundMethodGroup node,
10886BoundMethodGroup node,
10918BoundMethodGroup methodGroup,
10992BoundMethodGroup node,
11073internal NamedTypeSymbol? GetMethodGroupDelegateType(BoundMethodGroup node)
11092private MethodSymbol? GetUniqueSignatureFromMethodGroup_CSharp10(BoundMethodGroup node, out bool useParams)
11273private MethodSymbol? GetUniqueSignatureFromMethodGroup(BoundMethodGroup node, out bool useParams)
Binder\Binder_Invocation.cs (10)
362node, expression, methodName, (BoundMethodGroup)boundExpression, analyzedArguments,
413BoundMethodGroup methodGroup = (BoundMethodGroup)expression;
702BoundMethodGroup methodGroup,
885private void ReportDynamicInvocationWarnings(SyntaxNode syntax, BoundMethodGroup methodGroup, BindingDiagnosticBag diagnostics, ImmutableArray<MemberResolutionResult<MethodSymbol>> finalApplicableCandidates)
922BoundMethodGroup boundMethodGroup,
977BoundMethodGroup boundMethodGroup,
2333var originalMethods = (expr.Kind == BoundKind.MethodGroup) ? ((BoundMethodGroup)expr).Methods : ImmutableArray<MethodSymbol>.Empty;
2382if (boundArgument is BoundMethodGroup methodGroup)
2436private 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)
252private static MethodGroupResolution ResolveDelegateOrFunctionPointerMethodGroup(Binder binder, BoundMethodGroup source, MethodSymbol delegateInvokeMethodOpt, bool isFunctionPointer, in CallingConventionInfo callingConventionInfo, ref CompoundUseSiteInfo<AssemblySymbol> useSiteInfo)
301public static bool ReportDelegateOrFunctionPointerMethodGroupDiagnostics(Binder binder, BoundMethodGroup expr, TypeSymbol targetType, BindingDiagnosticBag diagnostics)
FlowAnalysis\NullableWalker.cs (10)
8672internal override TypeWithAnnotations GetMethodGroupResultType(BoundMethodGroup group, MethodSymbol method)
9646var group = conversionOperand as BoundMethodGroup;
10416case BoundMethodGroup group:
10472Action<NamedTypeSymbol>? visitMethodGroupArgument(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group)
10480Action<NamedTypeSymbol>? analyzeMethodGroupConversion(BoundDelegateCreationExpression node, NamedTypeSymbol delegateType, BoundMethodGroup group, bool isTargetTyped)
10501Action<NamedTypeSymbol>? analyzeMethodGroupConversionAsContinuation(BoundDelegateCreationExpression node, BoundMethodGroup group)
10578public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
10617private MethodSymbol CheckMethodGroupReceiverNullability(BoundMethodGroup group, ImmutableArray<ParameterSymbol> parameters, MethodSymbol method, bool invokedAsExtensionMethod)
12807var receiverOpt = (expr as BoundMethodGroup)?.ReceiverOpt;
Generated\BoundNodes.xml.Generated.cs (17)
1329public BoundUnconvertedAddressOfOperator(SyntaxNode syntax, BoundMethodGroup operand, bool hasErrors = false)
1338public BoundMethodGroup Operand { get; }
1344public BoundUnconvertedAddressOfOperator Update(BoundMethodGroup operand)
6158public BoundMethodGroup Update(ImmutableArray<TypeWithAnnotations> typeArgumentsOpt, string name, ImmutableArray<MethodSymbol> methods, Symbol? lookupSymbolOpt, DiagnosticInfo? lookupError, BoundMethodGroupFlags? flags, FunctionTypeSymbol? functionType, BoundExpression? receiverOpt, LookupResultKind resultKind)
6162var result = new BoundMethodGroup(this.Syntax, typeArgumentsOpt, name, methods, lookupSymbolOpt, lookupError, flags, functionType, receiverOpt, resultKind, this.HasErrors);
9298return VisitMethodGroup((BoundMethodGroup)node, arg);
9612public virtual R VisitMethodGroup(BoundMethodGroup node, A arg) => this.DefaultVisit(node, arg);
9850public virtual BoundNode? VisitMethodGroup(BoundMethodGroup node) => this.DefaultVisit(node);
10601public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
11136BoundMethodGroup operand = (BoundMethodGroup)this.Visit(node.Operand);
11998public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
12908BoundMethodGroup operand = (BoundMethodGroup)this.Visit(node.Operand);
14213public override BoundNode? VisitMethodGroup(BoundMethodGroup node)
14219BoundMethodGroup updatedNode;
16682public override TreeDumperNode VisitMethodGroup(BoundMethodGroup node, object? arg) => new TreeDumperNode("methodGroup", null, new TreeDumperNode[]
Lowering\DiagnosticsPass_ExpressionTrees.cs (5)
851CheckMethodGroup((BoundMethodGroup)node.Operand, node.Conversion.Method, node.IsExtensionMethod, parentIsConversion: true, node.Type);
919CheckMethodGroup((BoundMethodGroup)node.Argument, node.MethodOpt, node.IsExtensionMethod, parentIsConversion: true, convertedToType: node.Type);
925public override BoundNode VisitMethodGroup(BoundMethodGroup node)
931private void CheckMethodGroup(BoundMethodGroup node, MethodSymbol method, bool isExtensionMethod, bool parentIsConversion, TypeSymbol convertedToType)
999return base.VisitMethodGroup((BoundMethodGroup)node.Expression);