Make getACallee overlay[global]

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Owen Mansel-Chan
2026-04-21 11:22:46 +01:00
parent cbc12324bb
commit 710c1ba050
3 changed files with 7 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
/**
* Provides classes for working with declarations.
*/
overlay[local]
overlay[local?]
module;
import go
@@ -137,6 +137,7 @@ class FuncDef extends @funcdef, StmtParent, ExprParent {
/**
* Gets a call to this function.
*/
overlay[global]
DataFlow::CallNode getACall() { result.getACallee() = this }
/** Holds if this function is variadic. */

View File

@@ -1,7 +1,7 @@
/**
* Provides classes for working with scopes and declared objects.
*/
overlay[local]
overlay[local?]
module;
import go
@@ -418,6 +418,7 @@ class Function extends ValueEntity, @functionobject {
* This includes calls that target this function indirectly, by calling an
* interface method that this function implements.
*/
overlay[global]
pragma[nomagic]
DataFlow::CallNode getACall() { this = result.getACalleeIncludingExternals().asFunction() }

View File

@@ -1,4 +1,4 @@
overlay[local]
overlay[local?]
module;
private import go
@@ -488,6 +488,7 @@ module Public {
* For virtual calls, we look up possible targets in all types that implement the receiver
* interface type.
*/
overlay[global]
Callable getACalleeIncludingExternals() {
result = this.getACalleeWithoutVirtualDispatch()
or
@@ -504,6 +505,7 @@ module Public {
* As `getACalleeIncludingExternals`, except excluding external functions (those for which
* we lack a definition, such as standard library functions).
*/
overlay[global]
pragma[nomagic]
FuncDef getACallee() { result = this.getACalleeIncludingExternals().getFuncDef() }