19 instantiations of BoundCall
Microsoft.CodeAnalysis.CSharp (19)
Binder\Binder_Await.cs (2)
381runtimeAwaitCall = new BoundCall( 522runtimeAwaitAwaiterCall = new BoundCall(
Binder\Binder_Expressions.cs (1)
5141return 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)
4003return new BoundCall( 4051return new BoundCall(
BoundTree\Constructors.cs (2)
146return new BoundCall( 218return new BoundCall(syntax,
Compiler\MethodBodySynthesizer.cs (1)
44new BoundCall(syntax,
Generated\BoundNodes.xml.Generated.cs (1)
6215var 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( 1519return new BoundCall(
Lowering\LocalRewriter\LocalRewriter_CollectionExpression.cs (1)
555var invocation = new BoundCall(
Lowering\LocalRewriter\LocalRewriter_ObjectCreationExpression.cs (1)
350var createInstanceCall = new BoundCall(
Lowering\SyntheticBoundNodeFactory.cs (2)
879return new BoundCall( 920return new BoundCall(
Symbols\Synthesized\SynthesizedEntryPointSymbol.cs (3)
295return new BoundCall( 361BoundCall userMainInvocation = new BoundCall( 387_userEntryPointInvocation = new BoundCall(
384 references to BoundCall
Microsoft.CodeAnalysis.CSharp (384)
Binder\Binder.ValueChecks.cs (18)
133public static MethodInvocationInfo FromCall(BoundCall call, BoundExpression? substitutedReceiver = null) 1103var call = (BoundCall)expr; 1121case BoundCall sliceAccess: 3790var call = (BoundCall)expr; 3851case BoundCall call: 4076var call = (BoundCall)expr; 4144case BoundCall call: 4441var call = (BoundCall)expr; 4489case BoundCall call: 5112var call = (BoundCall)expr; 5177case BoundCall call: 5845if (part is not BoundCall { IsErroneousNode: false } call) 5886if (part is not BoundCall { IsErroneousNode: false } call)
Binder\Binder_Await.cs (11)
62out BoundCall? runtimeAsyncAwaitCall, 95var call = (BoundCall)expression; 261out BoundCall? runtimeAsyncAwaitCall, 276out BoundCall? runtimeAsyncAwaitCall, 323bool tryGetRuntimeAwaitHelper(BoundExpression expression, out BoundAwaitableValuePlaceholder? placeholder, out BoundCall? runtimeAwaitCall, BindingDiagnosticBag diagnostics) 487bool getRuntimeAwaitAwaiter(TypeSymbol awaiterType, out BoundCall? runtimeAwaitAwaiterCall, out BoundAwaitableValuePlaceholder? placeholder, SyntaxNode syntax, BindingDiagnosticBag diagnostics) 606var call = (BoundCall)getAwaiterCall; 716var call = (BoundCall)getAwaiterGetResultCall;
Binder\Binder_Conversions.cs (1)
1654case BoundCall call:
Binder\Binder_Deconstruct.cs (1)
684var deconstructMethod = ((BoundCall)result).Method;
Binder\Binder_Expressions.cs (4)
5161var result = CreateBadCall( 6585var boundCall = (BoundCall)addMethodInvocation; 10415Debug.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)
1084var call = (BoundCall)expression; 1138private BoundCall BindInvocationExpressionContinued( 2029private BoundCall CreateBadCall( 2085return BoundCall.ErrorCall(node, receiver, method, args, argNames, argRefKinds, isDelegate, invokedAsExtensionMethod: invokedAsExtensionMethod, originalMethods: methods, resultKind: resultKind, binder: this); 2311private BoundCall CreateBadCall( 2326return 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, receiverIsCheckedForRValue: false, "Select", lambda, diagnostics 257BoundCall result; 308private static BoundCall ReverseLastTwoParameterOrder(BoundCall result) 367var invocation = MakeQueryInvocation(where, state.fromExpression, receiverIsCheckedForRValue: false, "Where", lambda, diagnostics 415BoundCall invocation; 483BoundCall invocation; 572var invocation = MakeQueryInvocation(ordering, state.fromExpression, receiverIsCheckedForRValue: false, methodName, lambda, diagnostics 615var invocation = MakeQueryInvocation( 663var invocation = MakeQueryInvocation( 683private static BoundExpression? ExtractCastInvocation(BoundCall invocation) 694var i1 = r1 != null ? r1.ExpressionOpt as BoundCall : null; 768var invocation = MakeQueryInvocation(let, state.fromExpression, receiverIsCheckedForRValue: false, "Select", lambda, diagnostics 885protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, bool receiverIsCheckedForRValue, string methodName, BoundExpression arg, BindingDiagnosticBag diagnostics 898protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, bool receiverIsCheckedForRValue, string methodName, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics 911protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, bool receiverIsCheckedForRValue, string methodName, TypeSyntax typeArgSyntax, TypeWithAnnotations typeArg, BindingDiagnosticBag diagnostics 924protected BoundCall MakeQueryInvocation(CSharpSyntaxNode node, BoundExpression receiver, bool receiverIsCheckedForRValue, string methodName, SeparatedSyntaxList<TypeSyntax> typeArgsSyntax, ImmutableArray<TypeWithAnnotations> typeArgs, ImmutableArray<BoundExpression> args, BindingDiagnosticBag diagnostics 1010return (BoundCall)MakeInvocationExpression(
Binder\Binder_Statements.cs (6)
1702case BoundCall or BoundArrayAccess: 1750BoundImplicitIndexerAccess { IndexerOrSliceAccess: BoundCall call } => call.Method, 3960internal static BoundCall? GenerateBaseParameterlessConstructorInitializer(MethodSymbol constructor, BindingDiagnosticBag diagnostics) 4022private static BoundCall? GenerateBaseCopyConstructorInitializer(SynthesizedRecordCopyCtor constructor, BindingDiagnosticBag diagnostics) 4201var call = (BoundCall)patternMethodCall;
Binder\ForEachLoopBinder.cs (1)
732return BoundCall.Synthesized(
Binder\RefSafetyAnalysis.cs (13)
330protected override void BeforeVisitingSkippedBoundCallChildren(BoundCall node) 758public sealed override BoundNode? VisitCall(BoundCall node) 761if (methodInvocationInfo.Receiver is BoundCall receiver1) 763var calls = ArrayBuilder<(BoundCall call, MethodInvocationInfo methodInvocationInfo)>.GetInstance(); 769while (methodInvocationInfo.Receiver is BoundCall receiver2) 798static MethodInvocationInfo getInvocationInfo(BoundCall node) 810void visitReceiver(BoundCall node, ref readonly MethodInvocationInfo methodInvocationInfo) 822void visitArguments(BoundCall node, ref readonly MethodInvocationInfo methodInvocationInfo) 835protected override void VisitReceiver(BoundCall node) 848protected override void VisitArguments(BoundCall node) 853private void VisitArguments(BoundCall node, ref readonly MethodInvocationInfo methodInvocationInfo) 1133var 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; 219var originalMethods = ((BoundCall)node).OriginalMethodsOpt;
BoundTree\BoundImplicitIndexerAccess.cs (1)
21Debug.Assert(IndexerOrSliceAccess is BoundIndexerAccess or BoundCall or BoundArrayAccess);
BoundTree\BoundNode_Source.cs (1)
213case 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( 165public BoundCall Update(ImmutableArray<BoundExpression> arguments) 170public BoundCall Update(BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, ImmutableArray<BoundExpression> arguments) 175public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method) 180public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0) 185public static BoundCall Synthesized(SyntaxNode syntax, BoundExpression? receiverOpt, ThreeState initialBindingReceiverIsSubjectToCloning, MethodSymbol method, BoundExpression arg0, BoundExpression arg1) 190public 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) 2223public override BoundNode VisitCall(BoundCall node) 2225if (node.ReceiverOpt is BoundCall receiver1) 2227var calls = ArrayBuilder<BoundCall>.GetInstance(); 2232while (node.ReceiverOpt is BoundCall receiver2) 2263BoundExpression? visitReceiver(BoundCall node) 2289BoundExpression visitArgumentsAndUpdateCall(BoundCall node, BoundExpression? receiverOpt)
Compilation\CSharpCompilation.cs (1)
2269var success = binder.GetAwaitableExpressionInfo(dumbInstance, out BoundExpression? result, out BoundCall? runtimeAwaitCall, syntax, diagnostics);
Compilation\CSharpSemanticModel.cs (6)
3441var call = (BoundCall)boundNode; 4272var call = (BoundCall)boundNodeForSyntacticParent; 4748private static OneOrMany<Symbol> CreateReducedAndFilteredSymbolsFromOriginals(BoundCall call, CSharpCompilation compilation) 4784private OneOrMany<Symbol> CreateReducedExtensionMethodIfPossible(BoundCall call)
Compilation\MemberSemanticModel.cs (4)
1088var call = bound?.Operation as BoundCall; 1817var 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)
2017expressionStatement.Expression is BoundCall { Method: var initMethod } && initMethod.IsDefaultValueTypeConstructor(); 2509var 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)
1572return constructorBody is BoundConstructorMethodBody { Initializer: BoundExpressionStatement { Expression: BoundCall { Method: { MethodKind: MethodKind.Constructor } initializerMethod } } } 6505public override BoundNode? VisitCall(BoundCall node) 6508if (tryGetReceiver(node, out BoundCall? receiver)) 6511var calls = ArrayBuilder<BoundCall>.GetInstance(); 6519while (tryGetReceiver(node, out BoundCall? receiver2)) 6608bool tryGetReceiver(BoundCall node, [MaybeNullWhen(returnValue: false)] out BoundCall receiver) 6610if (node.ReceiverOpt is BoundCall instanceReceiver) 6616if (node.InvokedAsExtensionMethod && node.Arguments is [BoundCall extensionReceiver, ..] && 6629TypeWithState visitAndCheckReceiver(BoundCall node) 6639void reinferMethodAndVisitArguments(BoundCall node, TypeWithState receiverType, VisitResult? firstArgumentResult = null) 6820private void LearnFromEqualsMethod(MethodSymbol method, BoundCall node, TypeWithState receiverType, ImmutableArray<VisitResult> results) 7412if (node is BoundCall { HasErrors: true, ArgumentNamesOpt.IsDefaultOrEmpty: false, ArgsToParamsOpt.IsDefault: true } && 7456if (node is BoundCall { Method: { OriginalDefinition: LocalFunctionSymbol localFunction } }) 10826var invocation = conversion.DeconstructionInfo.Invocation as BoundCall;
FlowAnalysis\NullableWalker_Patterns.cs (1)
853BoundCall call => AsMemberOfType(inputType, call.Method).GetTypeOrReturnType(),
Generated\BoundNodes.xml.Generated.cs (17)
2147public BoundAwaitableInfo(SyntaxNode syntax, BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder, bool hasErrors = false) 2168public BoundCall? RuntimeAsyncAwaitCall { get; } 2174public BoundAwaitableInfo Update(BoundAwaitableValuePlaceholder? awaitableInstancePlaceholder, bool isDynamic, BoundExpression? getAwaiter, PropertySymbol? isCompleted, MethodSymbol? getResult, BoundCall? runtimeAsyncAwaitCall, BoundAwaitableValuePlaceholder? runtimeAsyncAwaitCallPlaceholder) 6211public 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) 6215var result = new BoundCall(this.Syntax, receiverOpt, initialBindingReceiverIsSubjectToCloning, method, arguments, argumentNamesOpt, argumentRefKindsOpt, isDelegateCall, expanded, invokedAsExtensionMethod, argsToParamsOpt, defaultArguments, resultKind, originalMethodsOpt, type, this.HasErrors); 9224return VisitCall((BoundCall)node, arg); 9533public virtual R VisitCall(BoundCall node, A arg) => this.DefaultVisit(node, arg); 9769public virtual BoundNode? VisitCall(BoundCall node) => this.DefaultVisit(node); 10526public override BoundNode? VisitCall(BoundCall node) 11216BoundCall? runtimeAsyncAwaitCall = (BoundCall?)this.Visit(node.RuntimeAsyncAwaitCall); 11917public override BoundNode? VisitCall(BoundCall node) 13158BoundCall? runtimeAsyncAwaitCall = (BoundCall?)this.Visit(node.RuntimeAsyncAwaitCall); 14137public override BoundNode? VisitCall(BoundCall node) 14143BoundCall updatedNode; 16585public override TreeDumperNode VisitCall(BoundCall node, object? arg) => new TreeDumperNode("call", null, new TreeDumperNode[]
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (5)
126var runtimeAsyncAwaitCall = awaitableInfo.RuntimeAsyncAwaitCall; 186var isCompletedCall = _factory.Call(tmp, isCompletedMethod); 192var awaitCall = (BoundCall)Visit(awaitableInfo.RuntimeAsyncAwaitCall); 201var 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)
205return VisitCall((BoundCall)node); 643private 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)
169public 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)
550public override BoundExpression InstrumentCall(BoundCall original, BoundExpression rewritten)
Lowering\LocalRewriter\LocalRewriter.cs (1)
1096return ((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), 778return BoundCall.Synthesized( 805return BoundCall.Synthesized( 915return BoundCall.Synthesized( 947return BoundCall.Synthesized( 1859BoundExpression callX_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTempX, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefaultX); 1861BoundExpression callY_GetValueOrDefault = BoundCall.Synthesized(syntax, boundTempY, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefaultY); 2024return BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredLeft, loweredRight); 2050: (BoundExpression)BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, loweredLeft, loweredRight); 2085return 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)
555var invocation = new BoundCall( 655var call = _factory.Call(null, elementRef, inlineArrayLocal, _factory.Literal(i), useStrictArgumentRefKinds: true); 668var span = _factory.Call( 1107var spreadLength = _factory.Call(spreadOperandAsSpan, getLengthMethod.AsMember((NamedTypeSymbol)spreadOperandAsSpan.Type!)); 1108var 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)
1090value = BoundCall.Synthesized(syntax, rewrittenOperand, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, get_Value); 1190BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault), 1233return MakeLiftedUserDefinedConversionConsequence(BoundCall.Synthesized( 1378BoundExpression result = BoundCall.Synthesized( 1388private BoundExpression MakeLiftedUserDefinedConversionConsequence(BoundCall call, TypeSymbol resultType) 1450BoundCall callGetValueOrDefault = BoundCall.Synthesized(syntax, boundTemp, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getValueOrDefault); 1455BoundCall userDefinedCall = BoundCall.Synthesized( 1754return 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)
202BoundCall.Synthesized( 449BoundExpression disposeCall = BoundCall.Synthesized(syntax: forEachSyntax, receiverOpt: boundDisposableVar, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method: disposeMethod); 708return BoundCall.Synthesized( 717return BoundCall.Synthesized( 1093BoundExpression currentDimensionUpperBound = BoundCall.Synthesized(forEachSyntax, boundArrayVar, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, getUpperBoundMethod, dimensionArgument); 1147BoundExpression 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 (3)
186BoundCall clone = _factory.Call( 350var createInstanceCall = new BoundCall( 420BoundCall instance = _factory.Call(null, createInstance, callGetTypeFromCLSID);
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 (11)
196return BoundCall.Synthesized(originalSyntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, method, finalArguments); 293else if (argument is BoundCall call) 413public bool IsWellKnownConcatMethod(BoundCall call, out ImmutableArray<BoundExpression> arguments) 441public bool IsCharToString(BoundCall call, [NotNullWhen(true)] out BoundExpression? charExpression) 463private readonly bool IsConcatNonArray(BoundCall call, ref MethodSymbol? concatMethod, SpecialMember concatSpecialMember, out ImmutableArray<BoundExpression> arguments) 554args[i] = BoundCall.Synthesized(arg.Syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, stringImplicitConversionToReadOnlySpan, arg); 558var concatCall = BoundCall.Synthesized(syntax, receiverOpt: null, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, spanConcat, args.ToImmutableAndFree()); 693return BoundCall.Synthesized(syntax, expr, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, structToStringMethod); 718return BoundCall.Synthesized(syntax, expr, initialBindingReceiverIsSubjectToCloning: ThreeState.Unknown, objectToStringMethod); 746whenNotNull: 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)
176var call = factory.Call( 191var call = factory.Call( 205var 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) 1029public override BoundNode VisitCall(BoundCall node)
Lowering\StateMachineRewriter\RefInitializationHoister.cs (2)
231var call = (BoundCall)expr;
Lowering\SyntheticBoundNodeFactory.cs (8)
852public BoundCall Call(BoundExpression? receiver, MethodSymbol method) 857public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, bool useStrictArgumentRefKinds = false) 862public BoundCall Call(BoundExpression? receiver, MethodSymbol method, BoundExpression arg0, BoundExpression arg1, bool useStrictArgumentRefKinds = false) 867public BoundCall Call(BoundExpression? receiver, MethodSymbol method, params BoundExpression[] args) 872public BoundCall Call(BoundExpression? receiver, WellKnownMember method, BoundExpression arg0) 875public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<BoundExpression> args, bool useStrictArgumentRefKinds = false) 917public BoundCall Call(BoundExpression? receiver, MethodSymbol method, ImmutableArray<RefKind> refKinds, ImmutableArray<BoundExpression> args) 1809return BoundCall.Synthesized(
Operations\CSharpOperationFactory.cs (4)
42return CreateBoundCallOperation((BoundCall)boundNode); 440private IOperation CreateBoundCallOperation(BoundCall boundCall) 2304case BoundCall call: 2441BoundCall { Method.Name: var name } => name,
Operations\CSharpOperationFactory_Methods.cs (2)
234var boundCall = (BoundCall)containingExpression;
Symbols\Synthesized\ReadOnlyListType\SynthesizedReadOnlyListTypeSymbol.cs (1)
777static BoundCall makeEqualityComparerDefaultEquals(
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
71var 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) 361BoundCall userMainInvocation = new BoundCall( 526var initializeCall = CreateParameterlessCall(syntax, scriptLocal, receiverIsSubjectToCloning: ThreeState.False, initializer); 642var initializeResult = CreateParameterlessCall(
Symbols\Synthesized\SynthesizedInstanceConstructor.cs (1)
297var baseConstructorCall = Binder.GenerateBaseParameterlessConstructorInitializer(this, diagnostics);