Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion go/ql/lib/semmle/go/Decls.qll
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Provides classes for working with declarations.
*/
overlay[local]
overlay[local?]
module;

import go
Expand Down Expand Up @@ -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. */
Expand Down
3 changes: 2 additions & 1 deletion go/ql/lib/semmle/go/Scopes.qll
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Provides classes for working with scopes and declared objects.
*/
overlay[local]
overlay[local?]
module;

import go
Expand Down Expand Up @@ -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() }

Expand Down
4 changes: 3 additions & 1 deletion go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
overlay[local]
overlay[local?]
module;

private import go
Expand Down Expand Up @@ -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
Expand All @@ -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() }

Expand Down
Loading