18 instantiations of BoundCall
Microsoft.CodeAnalysis.CSharp (18)
Binder\Binder_Await.cs (2)
368runtimeAwaitCall = new BoundCall( 509runtimeAwaitAwaiterCall = new BoundCall(
Binder\Binder_Expressions.cs (1)
5083return new BoundCall(
Binder\Binder_Invocation.cs (1)
1364return new BoundCall(node, receiver, initialBindingReceiverIsSubjectToCloning: ReceiverIsSubjectToCloning(receiver, method), method, args, argNames, argRefKinds, isDelegateCall: isDelegateCall,
Binder\Binder_Statements.cs (2)
3994return new BoundCall( 4038return new BoundCall(
BoundTree\Constructors.cs (2)
139return new BoundCall( 211return new BoundCall(syntax,
Compiler\MethodBodySynthesizer.cs (1)
44new BoundCall(syntax,
Generated\BoundNodes.xml.Generated.cs (1)
6188var result = new BoundCall(this.Syntax, receiverOpt, initialBindingReceiverIsSubjectToCloning, method, arguments, argumentNamesOpt, argumentRefKindsOpt, isDelegateCall, expanded, invokedAsExtensionMethod, argsToParamsOpt, defaultArguments, resultKind, originalMethodsOpt, type, this.HasErrors);
Lowering\LocalRewriter\LocalRewriter_Call.cs (2)
491rewrittenBoundCall = new BoundCall( 1510return new BoundCall(
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (1)
492var invocation = new BoundCall(
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (1)
345var createInstanceCall = new BoundCall(
Lowering\SyntheticBoundNodeFactory.cs (2)
864return new BoundCall( 905return new BoundCall(
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (2)
295return new BoundCall( 358BoundCall userMainInvocation = new BoundCall(
381 references to BoundCall
Microsoft.CodeAnalysis.CSharp (381)
Binder\Binder.ValueChecks.cs (18)
134public static MethodInvocationInfo FromCall(BoundCall call, BoundExpression? substitutedReceiver = null) 1098var call = (BoundCall)expr; 1116case BoundCall sliceAccess: 3762var call = (BoundCall)expr; 3822case BoundCall call: 4044var call = (BoundCall)expr; 4110case BoundCall call: 4406var call = (BoundCall)expr; 4453case BoundCall call: 5084var call = (BoundCall)expr; 5148case BoundCall call: 5823if (part is not BoundCall call) 5865if (part is not BoundCall call)
Binder\Binder_Await.cs (11)
62out BoundCall? runtimeAsyncAwaitCall, 95var call = (BoundCall)expression; 248out BoundCall? runtimeAsyncAwaitCall, 263out BoundCall? runtimeAsyncAwaitCall, 310bool tryGetRuntimeAwaitHelper(BoundExpression expression, out BoundAwaitableValuePlaceholder? placeholder, out BoundCall? runtimeAwaitCall, BindingDiagnosticBag diagnostics) 474bool getRuntimeAwaitAwaiter(TypeSymbol awaiterType, out BoundCall? runtimeAwaitAwaiterCall, out BoundAwaitableValuePlaceholder? placeholder, SyntaxNode syntax, BindingDiagnosticBag diagnostics) 593var call = (BoundCall)getAwaiterCall; 701var call = (BoundCall)getAwaiterGetResultCall;
Binder\Binder_Conversions.cs (1)
1648case BoundCall call:
Binder\Binder_Deconstruct.cs (1)
684var deconstructMethod = ((BoundCall)result).Method;
Binder\Binder_Expressions.cs (4)
5103var result = CreateBadCall( 6520var boundCall = (BoundCall)addMethodInvocation; 10266Debug.Assert(indexerOrSliceAccess is BoundIndexerAccess or BoundCall);
Binder\Binder_InterpolatedString.cs (3)
670Debug.Assert(appendCallsArray.All(appendCalls => appendCalls.All(a => a is { HasErrors: true } or BoundCall { Arguments: { Length: > 0 } } or BoundDynamicInvocation))); 979Debug.Assert(call is BoundCall or BoundDynamicInvocation or { HasErrors: true }); 983if (call is BoundCall { Method: { ReturnType: var returnType } method })
Binder\Binder_Invocation.cs (7)
1067var call = (BoundCall)expression; 1121private BoundCall BindInvocationExpressionContinued( 1975private BoundCall CreateBadCall( 2030return BoundCall.ErrorCall(node, receiver, method, args, argNames, argRefKinds, isDelegate, invokedAsExtensionMethod: invokedAsExtensionMethod, originalMethods: methods, resultKind: resultKind, binder: this); 2254private BoundCall CreateBadCall( 2269return BoundCall.ErrorCall(node, expr, method, args, argNames, argRefKinds, isDelegateCall: false, invokedAsExtensionMethod: false, originalMethods: originalMethods, resultKind: resultKind, binder: this);
Binder\Binder_Query.cs (19)
233var result = MakeQueryInvocation(state.selectOrGroup, e, "Select", lambda, diagnostics 257BoundCall result; 308private static BoundCall ReverseLastTwoParameterOrder(BoundCall result) 367var invocation = MakeQueryInvocation(where, state.fromExpression, "Where", lambda, diagnostics 415BoundCall invocation; 481BoundCall invocation; 568var invocation = MakeQueryInvocation(ordering, state.fromExpression, methodName, lambda, diagnostics 611var invocation = MakeQueryInvocation( 658var invocation = MakeQueryInvocation( 677private static BoundExpression? ExtractCastInvocation(BoundCall invocation) 683var i1 = r1 != null ? r1.ExpressionOpt as BoundCall : null; 757var invocation = MakeQueryInvocation(let, state.fromExpression, "Select", lambda, diagnostics 874protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, BoundExpression arg, BindingDiagnosticBag diagnostics 887protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics 900protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, TypeSyntax typeArgSyntax, TypeWithAnnotations typeArg, BindingDiagnosticBag diagnostics 913protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, string methodName, SeparatedSyntaxList<TypeSyntax> typeArgsSyntax, ImmutableArray<TypeWithAnnotations> typeArgs, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics 992return (BoundCall)MakeInvocationExpression(
Binder\Binder_Statements.cs (6)
1697case BoundCall or BoundArrayAccess: 1745BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundCall call } => call.Method, 3951internal static BoundCall? GenerateBaseParameterlessConstructorInitializer(MethodSymbol constructor, BindingDiagnosticBag diagnostics) 4013private static BoundCall? GenerateBaseCopyConstructorInitializer(SynthesizedRecordCopyCtor constructor, BindingDiagnosticBag diagnostics) 4188var call = (BoundCall)patternMethodCall;
Binder\ForEachLoopBinder.cs (1)
729return BoundCall.Synthesized(
Binder\RefSafetyAnalysis.cs (11)
311protected override void BeforeVisitingSkippedBoundCallChildren(BoundCall node) 739public sealed override BoundNode? VisitCall(BoundCall node) 742if (methodInvocationInfo.Receiver is BoundCall receiver1) 744var calls = ArrayBuilder<(BoundCall call, MethodInvocationInfo methodInvocationInfo)>.GetInstance(); 750while (methodInvocationInfo.Receiver is BoundCall receiver2) 779static MethodInvocationInfo getInvocationInfo(BoundCall node) 787protected override void VisitReceiver(BoundCall node) 800protected override void VisitArguments(BoundCall node) 805private void VisitArguments(BoundCall node, ref readonly MethodInvocationInfo methodInvocationInfo) 1089var invocation = conversion.DeconstructionInfo.Invocation as BoundCall;
Binder\Semantics\Conversions\Conversion.cs (2)
500if (deconstructionUncommonData.DeconstructMethodInfo.Invocation is BoundCall call) 1256Debug.Assert(invocation is not BoundCall { Expanded: true });
BoundTree\BoundExpressionExtensions.cs (2)
34return ((BoundCall)node).Method.RefKind; 209var originalMethods = ((BoundCall)node).OriginalMethodsOpt;
BoundTree\BoundImplicitIndexerAccess.cs (1)
21Debug.Assert(IndexerOrSliceAccess is BoundIndexerAccess or BoundCall or BoundArrayAccess);
BoundTree\BoundNode_Source.cs (1)
212case BoundCall call:
BoundTree\BoundNodeExtensions.cs (2)
51return expression.Kind == BoundKind.Call && ((BoundCall)expression).IsConstructorInitializer(); 57public static bool IsConstructorInitializer(this BoundCall call)
BoundTree\BoundTreeVisitors.cs (1)
116return VisitCall(node as BoundCall, arg);
BoundTree\BoundTreeWalker.cs (10)
38var call = unoptimizedForm as BoundCall; 179public override BoundNode? VisitCall(BoundCall node) 181if (node.ReceiverOpt is BoundCall receiver1) 183var calls = ArrayBuilder<BoundCall>.GetInstance(); 188while (node.ReceiverOpt is BoundCall receiver2) 216protected virtual void BeforeVisitingSkippedBoundCallChildren(BoundCall node) 221/// Called only for the first (in evaluation order) <see cref="BoundCall"/> in the chain. 223protected virtual void VisitReceiver(BoundCall node) 228protected virtual void VisitArguments(BoundCall node)
BoundTree\Constructors.cs (8)
106public BoundCall Update(BoundExpression? receiverOpt, 121public static BoundCall ErrorCall( 158public BoundCall Update(ImmutableArray<BoundExpression> arguments) 163public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments) 168public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method) 173public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0) 178public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0, BoundExpression arg1) 183public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt = default)
CodeGen\CodeGenerator_HasHome.cs (1)
98var methodRefKind = ((BoundCall)expression).Method.RefKind;
CodeGen\CodeGenerator_RefSafety.cs (1)
13private static bool MightEscapeTemporaryRefs(BoundCall node, bool used)
CodeGen\EmitAddress.cs (3)
111var call = (BoundCall)expression; 177private static bool UseCallResultAsAddress(BoundCall call, AddressKind addressKind)
CodeGen\EmitExpression.cs (20)
103EmitCallExpression((BoundCall)expression, used ? UseKind.UsedAsValue : UseKind.Unused); 630protected override void VisitReceiver(BoundCall node) 1629private void EmitCallExpression(BoundCall call, UseKind useKind) 1646private void EmitDefaultValueTypeConstructorCallExpression(BoundCall call) 1666private void EmitStaticCallExpression(BoundCall call, UseKind useKind) 1703private void EmitInstanceCallExpression(BoundCall call, UseKind useKind) 1712if (receiverIsInstanceCall(call, out BoundCall nested)) 1714var calls = ArrayBuilder<BoundCall>.GetInstance(); 1730var parentCall = calls.Pop(); 1850CallKind determineEmitReceiverStrategy(BoundCall call, out AddressKind? addressKind, out bool box) 1941void emitReceiver(BoundCall call, CallKind callKind, AddressKind? addressKind, bool box, out LocalDefinition tempOpt) 1967void emitArgumentsAndCallEpilogue(BoundCall call, CallKind callKind, UseKind useKind) 2047void emitGenericReceiverCloneIfNecessary(BoundCall call, CallKind callKind, ref LocalDefinition tempOpt) 2098static bool receiverIsInstanceCall(BoundCall call, out BoundCall nested) 2100if (call.ReceiverOpt is BoundCall { Method: { RequiresInstanceReceiver: true } method } receiver && !method.IsDefaultValueTypeConstructor()) 2247return ((BoundCall)receiver).Method.RefKind != RefKind.None; 2968var left = (BoundCall)assignmentTarget; 3172Debug.Assert(((BoundCall)expression).Method.RefKind != RefKind.None);
CodeGen\Optimizer.cs (16)
1066Debug.Assert(((BoundCall)lhs).Method.RefKind == RefKind.Ref, "only ref returning methods are assignable"); 1117public override BoundNode VisitCall(BoundCall node) 1119if (node.ReceiverOpt is BoundCall receiver) 1122var calls = ArrayBuilder<BoundCall>.GetInstance(); 1127while (node.ReceiverOpt is BoundCall receiver2) 1163BoundExpression visitReceiver(BoundCall node) 1195BoundCall visitArgumentsAndUpdateCall(BoundCall node, BoundExpression receiver) 1202private BoundExpression VisitCallOrConditionalAccessReceiver(BoundExpression receiver, BoundCall callOpt) 1217private void CheckCallReceiver(BoundExpression receiver, BoundCall call) 2220public override BoundNode VisitCall(BoundCall node) 2222if (node.ReceiverOpt is BoundCall receiver1) 2224var calls = ArrayBuilder<BoundCall>.GetInstance(); 2229while (node.ReceiverOpt is BoundCall receiver2) 2260BoundExpression? visitReceiver(BoundCall node) 2286BoundExpression visitArgumentsAndUpdateCall(BoundCall node, BoundExpression? receiverOpt)
Compilation\CSharpCompilation.cs (1)
2243var success = binder.GetAwaitableExpressionInfo(dumbInstance, out BoundExpression? result, out BoundCall? runtimeAwaitCall, syntax, diagnostics);
Compilation\CSharpSemanticModel.cs (6)
3450var call = (BoundCall)boundNode; 4276var call = (BoundCall)boundNodeForSyntacticParent; 4752private static OneOrMany<Symbol> CreateReducedAndFilteredSymbolsFromOriginals(BoundCall call, CSharpCompilation compilation) 4788private OneOrMany<Symbol> CreateReducedExtensionMethodIfPossible(BoundCall call)
Compilation\MemberSemanticModel.cs (4)
1051var call = bound?.Operation as BoundCall; 1780var call = (BoundCall)node;
Compiler\MethodBodySynthesizer.cs (8)
286BoundCall getOrCreateCall = BoundCall.Synthesized( 299BoundCall processHandlerCall = BoundCall.Synthesized( 398operand: BoundCall.Synthesized(syntax, 463operand: BoundCall.Synthesized(syntax, 481BoundExpression compareExchange = BoundCall.Synthesized(syntax, 544BoundCall.Synthesized(
Compiler\MethodBodySynthesizer.Lowered.cs (1)
377public static BoundCall GenerateGetHashCode(
Compiler\MethodCompiler.cs (3)
2001expressionStatement.Expression is BoundCall { Method: var initMethod } && initMethod.IsDefaultValueTypeConstructor(); 2493var ctorCall = initializerInvocation as BoundCall;
FlowAnalysis\AbstractFlowPass.cs (5)
1330public override BoundNode VisitCall(BoundCall node) 1344if (node.ReceiverOpt is BoundCall receiver1) 1346var calls = ArrayBuilder<BoundCall>.GetInstance(); 1351while (node.ReceiverOpt is BoundCall receiver2) 1380void visitArgumentsAndCompleteAnalysis(BoundCall node)
FlowAnalysis\NullableWalker.cs (16)
1555return constructorBody is BoundConstructorMethodBody { Initializer: BoundExpressionStatement { Expression: BoundCall { Method: { MethodKind: MethodKind.Constructor } initializerMethod } } } 6454public override BoundNode? VisitCall(BoundCall node) 6457if (tryGetReceiver(node, out BoundCall? receiver)) 6460var calls = ArrayBuilder<BoundCall>.GetInstance(); 6468while (tryGetReceiver(node, out BoundCall? receiver2)) 6538bool tryGetReceiver(BoundCall node, [MaybeNullWhen(returnValue: false)] out BoundCall receiver) 6540if (node.ReceiverOpt is BoundCall instanceReceiver) 6546if (node.InvokedAsExtensionMethod && node.Arguments is [BoundCall extensionReceiver, ..] && 6559TypeWithState visitAndCheckReceiver(BoundCall node) 6564void reinferMethodAndVisitArguments(BoundCall node, TypeWithState receiverType, VisitResult? firstArgumentResult = null) 6728private void LearnFromEqualsMethod(MethodSymbol method, BoundCall node, TypeWithState receiverType, ImmutableArray<VisitResult> results) 7320if (node is BoundCall { HasErrors: true, ArgumentNamesOpt.IsDefaultOrEmpty: false, ArgsToParamsOpt.IsDefault: true } && 7364if (node is BoundCall { Method: { OriginalDefinition: LocalFunctionSymbol localFunction } }) 10689var invocation = conversion.DeconstructionInfo.Invocation as BoundCall;
FlowAnalysis\NullableWalker_Patterns.cs (1)
853BoundCall call => AsMemberOfType(inputType, call.Method).GetTypeOrReturnType(),
Generated\BoundNodes.xml.Generated.cs (17)
2130public BoundAwaitableInfo(SyntaxNode syntax, BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder, bool hasErrors = false) 2151public BoundCall? RuntimeAsyncAwaitCall { get; } 2157public BoundAwaitableInfo Update(BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder) 6184public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments, ImmutableArray<string?> argumentNamesOpt, ImmutableArray<RefKind> argumentRefKindsOpt, bool isDelegateCall, bool expanded, bool invokedAsExtensionMethod, ImmutableArray<int> argsToParamsOpt, BitVector defaultArguments, LookupResultKind resultKind, ImmutableArray<MethodSymbol> originalMethodsOpt, TypeSymbol type) 6188var result = new BoundCall(this.Syntax, receiverOpt, initialBindingReceiverIsSubjectToCloning, method, arguments, argumentNamesOpt, argumentRefKindsOpt, isDelegateCall, expanded, invokedAsExtensionMethod, argsToParamsOpt, defaultArguments, resultKind, originalMethodsOpt, type, this.HasErrors); 9193return VisitCall((BoundCall)node, arg); 9502public virtual R VisitCall(BoundCall node, A arg) => this.DefaultVisit(node, arg); 9738public virtual BoundNode? VisitCall(BoundCall node) => this.DefaultVisit(node); 10496public override BoundNode? VisitCall(BoundCall node) 11185BoundCall? runtimeAsyncAwaitCall = (BoundCall?)this.Visit(node.RuntimeAsyncAwaitCall); 11887public override BoundNode? VisitCall(BoundCall node) 13123BoundCall? runtimeAsyncAwaitCall = (BoundCall?)this.Visit(node.RuntimeAsyncAwaitCall); 14103public override BoundNode? VisitCall(BoundCall node) 14109BoundCall updatedNode; 16561public override TreeDumperNode VisitCall(BoundCall node, object? arg) => new TreeDumperNode("call", null, new TreeDumperNode[]
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (5)
76var runtimeAsyncAwaitCall = awaitableInfo.RuntimeAsyncAwaitCall; 136var isCompletedCall = _factory.Call(tmp, isCompletedMethod); 142var awaitCall = (BoundCall)Visit(awaitableInfo.RuntimeAsyncAwaitCall); 151var getResultCall = _factory.Call(tmp, getResultMethod);
Lowering\BoundTreeToDifferentEnclosingContextRewriter.cs (2)
137BoundCall? runtimeAsyncAwaitCall = null; 144runtimeAsyncAwaitCall = (BoundCall?)this.Visit(node.RuntimeAsyncAwaitCall);
Lowering\ClosureConversion\ClosureConversion.Analysis.Tree.cs (1)
458protected override void VisitArguments(BoundCall node)
Lowering\ClosureConversion\ClosureConversion.cs (3)
1074public override BoundNode VisitCall(BoundCall node) 1114var rewritten = (BoundCall)visited;
Lowering\ClosureConversion\ExpressionLambdaRewriter.cs (2)
200return VisitCall((BoundCall)node); 636private BoundExpression VisitCall(BoundCall node)
Lowering\DiagnosticsPass_ExpressionTrees.cs (5)
482public override BoundNode VisitCall(BoundCall node) 484if (node.ReceiverOpt is BoundCall receiver1) 486var calls = ArrayBuilder<BoundCall>.GetInstance(); 491while (node.ReceiverOpt is BoundCall receiver2) 521void visitCall(BoundCall node)
Lowering\ExtensionMethodBodyRewriter.cs (1)
181public override BoundNode? VisitCall(BoundCall node)
Lowering\ExtensionMethodReferenceRewriter.cs (7)
29public override BoundNode VisitCall(BoundCall node) 34public static BoundNode VisitCall(BoundTreeRewriter rewriter, BoundCall node) 40if (LocalRewriter.TryGetReceiver(node, out BoundCall? receiver1)) 43var calls = ArrayBuilder<BoundCall>.GetInstance(); 48while (LocalRewriter.TryGetReceiver(node, out BoundCall? receiver2)) 75static BoundExpression visitArgumentsAndFinishRewrite(BoundTreeRewriter rewriter, BoundCall node, BoundExpression? rewrittenReceiver) 91BoundCall boundCall,
Lowering\Instrumentation\CompoundInstrumenter.cs (1)
159public override BoundExpression InstrumentCall(BoundCall original, BoundExpression rewritten)
Lowering\Instrumentation\Instrumenter.cs (1)
227public virtual BoundExpression InstrumentCall(BoundCall original, BoundExpression rewritten)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
548public override BoundExpression InstrumentCall(BoundCall original, BoundExpression rewritten)
Lowering\LocalRewriter\LocalRewriter.cs (1)
1092return ((BoundCall)expr).Method.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (1)
151protected override void VisitArguments(BoundCall node)
Lowering\LocalRewriter\LocalRewriter_AssignmentOperator.cs (3)
408BoundExpression setterCall = BoundCall.Synthesized( 424BoundCall setterCall = BoundCall.Synthesized(
Lowering\LocalRewriter\LocalRewriter_BinaryOperator.cs (11)
87var falseOperatorCall = BoundCall.Synthesized(syntax, receiverOpt: node.ConstrainedToTypeOpt is null ? null : new BoundTypeExpression(syntax, aliasOpt: null, node.ConstrainedToTypeOpt), 777return BoundCall.Synthesized( 804return BoundCall.Synthesized( 914return BoundCall.Synthesized( 946return BoundCall.Synthesized( 1858BoundExpression callX_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTempX, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefaultX); 1860BoundExpression callY_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTempY, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefaultY); 2023return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredLeft, loweredRight); 2049: (BoundExpression)BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredLeft, loweredRight); 2084return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredLeft, loweredRight);
Lowering\LocalRewriter\LocalRewriter_Call.cs (10)
336public override BoundNode VisitCall(BoundCall node) 342if (TryGetReceiver(node, out BoundCall? receiver1)) 345var calls = ArrayBuilder<BoundCall>.GetInstance(); 350while (TryGetReceiver(node, out BoundCall? receiver2)) 377BoundExpression visitArgumentsAndFinishRewrite(BoundCall node, BoundExpression? rewrittenReceiver) 436internal static bool TryGetReceiver(BoundCall node, [MaybeNullWhen(returnValue: false)] out BoundCall receiver) 438if (node.ReceiverOpt is BoundCall instanceReceiver) 444if (node.InvokedAsExtensionMethod && node.Arguments is [BoundCall extensionReceiver, ..]) 456BoundCall? node,
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (5)
492var invocation = new BoundCall( 592var call = _factory.Call(null, elementRef, inlineArrayLocal, _factory.Literal(i), useStrictArgumentRefKinds: true); 605var span = _factory.Call( 1008var spreadLength = _factory.Call(spreadOperandAsSpan, getLengthMethod.AsMember((NamedTypeSymbol)spreadOperandAsSpan.Type!)); 1009var targetSlice = _factory.Call(spanTemp, spanSliceMethod.AsMember((NamedTypeSymbol)spanTemp.Type!), indexTemp, spreadLength);
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (5)
46return BoundCall.Synthesized(syntax, 67BoundCall.Synthesized(syntax, 830Debug.Assert(((BoundCall)originalLHS).Method.RefKind != RefKind.None); 1046var call = (BoundCall)expression;
Lowering\LocalRewriter\LocalRewriter_Conversion.cs (10)
1083value = BoundCall.Synthesized(syntax, rewrittenOperand, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, get_Value); 1183BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault), 1226return MakeLiftedUserDefinedConversionConsequence(BoundCall.Synthesized( 1371BoundExpression result = BoundCall.Synthesized( 1381private BoundExpression MakeLiftedUserDefinedConversionConsequence(BoundCall call, TypeSymbol resultType) 1443BoundCall callGetValueOrDefault = BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 1448BoundCall userDefinedCall = BoundCall.Synthesized( 1747return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, operand);
Lowering\LocalRewriter\LocalRewriter_Event.cs (1)
256getOrCreateCall = BoundCall.Synthesized(
Lowering\LocalRewriter\LocalRewriter_ExpressionStatement.cs (2)
63var call = (BoundCall)expression;
Lowering\LocalRewriter\LocalRewriter_FixedStatement.cs (1)
360var getPinnableCall = getPinnableMethod.IsStatic ?
Lowering\LocalRewriter\LocalRewriter_ForEachStatement.cs (6)
199BoundCall.Synthesized( 445BoundExpression disposeCall = BoundCall.Synthesized(syntax: forEachSyntax, receiverOpt: boundDisposableVar, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method: disposeMethod); 704return BoundCall.Synthesized( 713return BoundCall.Synthesized( 1089BoundExpression currentDimensionUpperBound = BoundCall.Synthesized(forEachSyntax, boundArrayVar, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getUpperBoundMethod, dimensionArgument); 1143BoundExpression currentDimensionLowerBound = BoundCall.Synthesized(forEachSyntax, boundArrayVar, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getLowerBoundMethod, dimensionArgument);
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (3)
812Debug.Assert(node.IndexerOrSliceAccess is BoundCall); 1026var sliceCall = (BoundCall)node.IndexerOrSliceAccess;
Lowering\LocalRewriter\LocalRewriter_LockStatement.cs (5)
55var enterScopeCall = BoundCall.Synthesized( 108exitCallExpr = BoundCall.Synthesized( 154BoundCall.Synthesized( 203enterCallExpr = BoundCall.Synthesized(
Lowering\LocalRewriter\LocalRewriter_NullCoalescingAssignmentOperator.cs (3)
116var tmp = _factory.StoreToTemp(BoundCall.Synthesized(leftOperand.Syntax, lhsRead, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault), 139var lhsReadHasValue = BoundCall.Synthesized(leftOperand.Syntax, lhsRead, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, hasValue);
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (5)
142return BoundCall.Synthesized(rewrittenLeft.Syntax, rewrittenLeft, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 149return BoundCall.Synthesized(rewrittenLeft.Syntax, rewrittenLeft, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefaultDefaultValue, rewrittenRight); 197var boundCall = (BoundCall)expression; 258rewrittenLeft = BoundCall.Synthesized(rewrittenLeft.Syntax, rewrittenLeft, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault);
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (1)
345var createInstanceCall = new BoundCall(
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
450else if (rewrittenArrayAccess is BoundCall getSubArrayCall)
Lowering\LocalRewriter\LocalRewriter_PropertyAccess.cs (1)
97return BoundCall.Synthesized(
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (12)
196return BoundCall.Synthesized(originalSyntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, finalArguments); 222not (BoundCall or BoundConversion { ConversionKind: ConversionKind.Boxing, Type.SpecialType: SpecialType.System_Object, Operand.Type.SpecialType: SpecialType.System_Char }) 290else if (argument is BoundCall call) 366public bool IsWellKnownConcatMethod(BoundCall call, out ImmutableArray<BoundExpression> arguments) 394public bool IsCharToString(BoundCall call, [NotNullWhen(true)] out BoundExpression? charExpression) 416private readonly bool IsConcatNonArray(BoundCall call, ref MethodSymbol? concatMethod, SpecialMember concatSpecialMember, out ImmutableArray<BoundExpression> arguments) 507args[i] = BoundCall.Synthesized(arg.Syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, stringImplicitConversionToReadOnlySpan, arg); 511var concatCall = BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, spanConcat, args.ToImmutableAndFree()); 646return BoundCall.Synthesized(syntax, expr, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, structToStringMethod); 671return BoundCall.Synthesized(syntax, expr, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, objectToStringMethod); 699whenNotNull: BoundCall.Synthesized(
Lowering\LocalRewriter\LocalRewriter_StringInterpolation.cs (3)
33Debug.Assert(parts.All(static p => p is BoundCall or BoundDynamicInvocation)); 73if (part is BoundCall call) 227? BoundCall.Synthesized(syntax, result.HandlerTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, toStringAndClear)
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (3)
164var call = factory.Call( 179var call = factory.Call( 193var call = factory.Call(
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (15)
117return BoundCall.Synthesized( 170return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredOperand); 211BoundExpression call_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 415return BoundCall.Synthesized(syntax, 442BoundCall.Synthesized(syntax, 481BoundCall increment = makeIncrementCall(syntax, boundTemp, rightOpt, operatorMethod); 497BoundCall increment = makeIncrementCall(syntax, boundTemp, rightOpt, operatorMethod); 523static BoundCall makeIncrementCall(SyntaxNode syntax, BoundLocal boundTemp, BoundExpression? rightOpt, MethodSymbol operatorMethod) 525return BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.False, operatorMethod, rightOpt is null ? [] : [rightOpt]); 810return BoundCall.Synthesized( 837BoundExpression call_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 840BoundExpression userDefinedCall = BoundCall.Synthesized( 987return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, operand); 1002BoundExpression getValueCall = BoundCall.Synthesized(syntax, operand, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 1004BoundExpression methodCall = BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, getValueCall);
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
365disposedExpression = BoundCall.Synthesized(resourceSyntax, local, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault);
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
658var siteInvocation = _factory.Call(
Lowering\MethodToClassRewriter.cs (1)
96public override BoundNode VisitCall(BoundCall node)
Lowering\SpillSequenceSpiller.cs (4)
432var call = (BoundCall)expression; 520BoundExpression spillInlineArrayHelperWithTwoArguments(BoundSpillSequenceBuilder builder, BoundCall call) 1027public override BoundNode VisitCall(BoundCall node)
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (2)
639var call = (BoundCall)expr;
Lowering\SyntheticBoundNodeFactory.cs (8)
837public BoundCall Call(BoundExpression? receiver, MethodSymbol method) 842public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, bool useStrictArgumentRefKinds = false) 847public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, BoundExpression arg1, bool useStrictArgumentRefKinds = false) 852public BoundCall Call(BoundExpression? receiver, MethodSymbol method, params BoundExpression[] args) 857public BoundCall Call(BoundExpression? receiver, WellKnownMember method, BoundExpression arg0) 860public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<BoundExpression> args, bool useStrictArgumentRefKinds = false) 902public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<RefKind> refKinds, ImmutableArray<BoundExpression> args) 1814return BoundCall.Synthesized(
Operations\CSharpOperationFactory.cs (4)
42return CreateBoundCallOperation((BoundCall)boundNode); 440private IOperation CreateBoundCallOperation(BoundCall boundCall) 2313case BoundCall call: 2450BoundCall { Method.Name: var name } => name,
Operations\CSharpOperationFactory_Methods.cs (2)
234var boundCall = (BoundCall)containingExpression;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (1)
736static BoundCall makeEqualityComparerDefaultEquals(
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
65var retExpr = F.Call(
Symbols\Synthesized\Records\SynthesizedRecordEquals.cs (1)
97var contractsEqual = F.Call(receiver: null, F.WellKnownMethod(WellKnownMember.System_Type__op_Equality),
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (1)
164var basePrintCall = F.Call(receiver: F.Base(ContainingType.BaseTypeNoUseSiteDiagnostics), basePrintMethod, builder);
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (4)
293private static BoundCall CreateParameterlessCall(CSharpSyntaxNode syntax, BoundExpression receiver, ThreeState receiverIsSubjectToCloning, MethodSymbol method) 358BoundCall userMainInvocation = new BoundCall( 493var initializeCall = CreateParameterlessCall(syntax, scriptLocal, receiverIsSubjectToCloning: ThreeState.False, initializer); 609var initializeResult = CreateParameterlessCall(
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (1)
297var baseConstructorCall = Binder.GenerateBaseParameterlessConstructorInitializer(this, diagnostics);