3 instantiations of BoundFunctionPointerInvocation
Microsoft.CodeAnalysis.CSharp (3)
Binder\Binder_Invocation.cs (2)
2608return new BoundFunctionPointerInvocation( 2631return new BoundFunctionPointerInvocation(
Generated\BoundNodes.xml.Generated.cs (1)
1495var result = new BoundFunctionPointerInvocation(this.Syntax, invokedExpression, arguments, argumentRefKindsOpt, resultKind, type, this.HasErrors);
50 references to BoundFunctionPointerInvocation
Microsoft.CodeAnalysis.CSharp (50)
Binder\Binder_Invocation.cs (1)
2570private BoundFunctionPointerInvocation BindFunctionPointerInvocation(SyntaxNode node, BoundExpression boundExpression, AnalyzedArguments analyzedArguments, BindingDiagnosticBag diagnostics)
Binder\Binder.ValueChecks.cs (10)
139public static MethodInvocationInfo FromFunctionPointerInvocation(BoundFunctionPointerInvocation ptrInvocation) 1102return CheckMethodReturnValueKind(((BoundFunctionPointerInvocation)expr).FunctionPointer.Signature, 3802var ptrInvocation = (BoundFunctionPointerInvocation)expr; 4191var functionPointerInvocation = (BoundFunctionPointerInvocation)expr; 4457var ptrInvocation = (BoundFunctionPointerInvocation)expr; 5182var ptrInvocation = (BoundFunctionPointerInvocation)expr;
Binder\RefSafetyAnalysis.cs (1)
1150public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
CodeGen\CodeGenerator_HasHome.cs (1)
137return callHasHome(addressKind, ((BoundFunctionPointerInvocation)expression).FunctionPointer.Signature.RefKind);
CodeGen\CodeGenerator_RefSafety.cs (1)
35private static bool MightEscapeTemporaryRefs(BoundFunctionPointerInvocation node, bool used)
CodeGen\EmitAddress.cs (2)
129var funcPtrInvocation = (BoundFunctionPointerInvocation)expression;
CodeGen\EmitExpression.cs (6)
347EmitCalli((BoundFunctionPointerInvocation)expression, used ? UseKind.UsedAsValue : UseKind.Unused); 2344return ((BoundFunctionPointerInvocation)receiver).FunctionPointer.Signature.RefKind != RefKind.None; 3093var left = (BoundFunctionPointerInvocation)assignmentTarget; 3307Debug.Assert(((BoundFunctionPointerInvocation)expression).FunctionPointer.Signature.RefKind != RefKind.None); 4182private void EmitCalli(BoundFunctionPointerInvocation ptrInvocation, UseKind useKind)
CodeGen\Optimizer.cs (2)
1070Debug.Assert(((BoundFunctionPointerInvocation)lhs).FunctionPointer.Signature.RefKind == RefKind.Ref, "only ref returning function pointers are assignable"); 2080public override BoundNode VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
Compilation\CSharpSemanticModel.cs (2)
3470var invocation = (BoundFunctionPointerInvocation)boundNode;
FlowAnalysis\AbstractFlowPass.cs (1)
3809public override BoundNode VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
FlowAnalysis\NullableWalker.cs (1)
13934public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
Generated\BoundNodes.xml.Generated.cs (10)
1491public BoundFunctionPointerInvocation Update(BoundExpression invokedExpression, ImmutableArray<BoundExpression> arguments, ImmutableArray<RefKind> argumentRefKindsOpt, LookupResultKind resultKind, TypeSymbol type) 1495var result = new BoundFunctionPointerInvocation(this.Syntax, invokedExpression, arguments, argumentRefKindsOpt, resultKind, type, this.HasErrors); 9146return VisitFunctionPointerInvocation((BoundFunctionPointerInvocation)node, arg); 9594public virtual R VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node, A arg) => this.DefaultVisit(node, arg); 9835public virtual BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node) => this.DefaultVisit(node); 10146public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node) 11306public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node) 13150public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node) 13154BoundFunctionPointerInvocation updatedNode; 15758public override TreeDumperNode VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node, object? arg) => new TreeDumperNode("functionPointerInvocation", null, new TreeDumperNode[]
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
1122public override BoundNode VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
Lowering\Instrumentation\CompoundInstrumenter.cs (1)
178public override BoundExpression InstrumentFunctionPointerInvocation(BoundFunctionPointerInvocation original, BoundExpression rewritten)
Lowering\Instrumentation\Instrumenter.cs (1)
251public virtual BoundExpression InstrumentFunctionPointerInvocation(BoundFunctionPointerInvocation original, BoundExpression rewritten)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
571public override BoundExpression InstrumentFunctionPointerInvocation(BoundFunctionPointerInvocation original, BoundExpression rewritten)
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
866Debug.Assert(((BoundFunctionPointerInvocation)originalLHS).FunctionPointer.Signature.RefKind != RefKind.None);
Lowering\LocalRewriter\LocalRewriter_FunctionPointerInvocation.cs (1)
14public override BoundNode? VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
Lowering\LocalRewriter\LocalRewriter.cs (1)
1102return ((BoundFunctionPointerInvocation)expr).FunctionPointer.Signature.RefKind != RefKind.None;
Lowering\SpillSequenceSpiller.cs (1)
1166public override BoundNode VisitFunctionPointerInvocation(BoundFunctionPointerInvocation node)
Operations\CSharpOperationFactory_Methods.cs (2)
252var boundFunctionPointerInvocation = (BoundFunctionPointerInvocation)containingExpression;
Operations\CSharpOperationFactory.cs (2)
278return CreateBoundFunctionPointerInvocationOperation((BoundFunctionPointerInvocation)boundNode); 479private IOperation CreateBoundFunctionPointerInvocationOperation(BoundFunctionPointerInvocation boundFunctionPointerInvocation)