Skip to content

Conversation

@asgerf
Copy link
Contributor

@asgerf asgerf commented Oct 31, 2025

No description provided.

@github-actions github-actions bot added the JS label Oct 31, 2025
private import semmle.javascript.dataflow.TypeTracking
private module Stage1Input implements StageInputSig {
pragma[inline]
predicate isAdditionalUseRoot(Node node) { none() }

Check warning

Code scanning / CodeQL

Cannot inline predicate across overlay frontier Warning

This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an overlay[caller] or overlay[caller?] annotation to allow inlining across the overlay frontier. Note that adding an overlay[caller] or overlay[caller?] annotation affects semantics under overlay evaluation.
t = useStep(nd, promisified, boundArgs, prop, result)
}
pragma[inline]
predicate isAdditionalDefRoot(Node node) { none() }

Check warning

Code scanning / CodeQL

Cannot inline predicate across overlay frontier Warning

This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an overlay[caller] or overlay[caller?] annotation to allow inlining across the overlay frontier. Note that adding an overlay[caller] or overlay[caller?] annotation affects semantics under overlay evaluation.

pragma[nomagic]
private predicate shouldTrackIntoOverlay(DataFlow::SourceNode nd) {
exists(DataFlow::Node overlayNode |

Check warning

Code scanning / CodeQL

Omittable 'exists' variable Warning

This exists variable can be omitted by using a don't-care expression
in this argument
.

pragma[nomagic]
private predicate shouldBacktrackIntoOverlay(DataFlow::SourceNode nd) {
exists(DataFlow::Node overlayNode |

Check warning

Code scanning / CodeQL

Omittable 'exists' variable Warning

This exists variable can be omitted by using a don't-care expression
in this argument
.
private module Debug {
private module FullInput implements StageInputSig {
pragma[inline]
predicate isAdditionalUseRoot(Node node) { none() }

Check warning

Code scanning / CodeQL

Cannot inline predicate across overlay frontier Warning

This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an overlay[caller] or overlay[caller?] annotation to allow inlining across the overlay frontier. Note that adding an overlay[caller] or overlay[caller?] annotation affects semantics under overlay evaluation.
predicate inScope(DataFlow::Node node) { any() }
}

private module Full = Stage<FullInput>;

Check warning

Code scanning / CodeQL

Dead code Warning

This code is never used, and it's not publicly exported.

private module Full = Stage<FullInput>;

query predicate missingDefNode(DataFlow::Node node) {

Check warning

Code scanning / CodeQL

Dead code Warning

This code is never used, and it's not publicly exported.
not exists(MkDef(node))
}

query predicate missingUseNode(DataFlow::Node node) {

Check warning

Code scanning / CodeQL

Dead code Warning

This code is never used, and it's not publicly exported.
not exists(MkUse(node))
}

query predicate lostEdge(Node pred, Label::ApiLabel lbl, Node succ) {

Check warning

Code scanning / CodeQL

Dead code Warning

This code is never used, and it's not publicly exported.
not Cached::edge(pred, lbl, succ)
}

query predicate counts(int numEdges, int numOverlayEdges, float ratio) {

Check warning

Code scanning / CodeQL

Dead code Warning

This code is never used, and it's not publicly exported.
asgerf added 27 commits November 3, 2025 11:49
This was initially lost after rebasing with indentation changes
Some abstract classes defines fields without binding them, leaving it up to the subclasses to bind them. When combined with overlay[local?], the charpred for such an abstract class can become local, while the subclasses are global. The means the charpred needs to be materialized, even though it doesn't bind the fields, leading to a cartesian product.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants