Files
codeql/javascript/ql/test/library-tests/RecursionPrevention/SourceNodeFlowsTo.ql
Taus 889209719b JS: Overlay annotations for some failing tests
Locally these seem to get rid of the compilation warnings, but of course
CI is the true arbiter here.
2025-11-13 09:46:03 +01:00

18 lines
546 B
Plaintext

/**
* Test that fails to compile if the domain of `SourceNode` depends on `SourceNode.flowsTo` (recursively).
*
* This tests adds a negative dependency `flowsTo --!--> SourceNode`
* so that the undesired edge `SourceNode --> flowsTo` completes a negative cycle.
*/
import javascript
overlay[local]
class BadSourceNode extends DataFlow::SourceNode {
BadSourceNode() { this.(DataFlow::PropRead).getPropertyName() = "foo" }
override predicate flowsTo(DataFlow::Node node) { not node instanceof DataFlow::SourceNode }
}
select "Success"