Skip to content

Commit 0ca38fa

Browse files
committed
add test of buildins
1 parent 236e6db commit 0ca38fa

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

ql/ql/test/modules/Foo.qll

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,18 @@ import SimpleMod
1919
private module SecondImpl implements MkThing<MyImpl>::SubMod {
2020
predicate bar() { none() }
2121
}
22+
23+
class Node extends int {
24+
Node() { this = [0 .. 10] }
25+
}
26+
27+
predicate sccEdge(Node a, Node b) { a = b % 2 }
28+
29+
private module Scc = QlBuiltins::EquivalenceRelation<Node, sccEdge/2>;
30+
31+
private class TypeFlowScc = Scc::EquivalenceClass;
32+
33+
/** Holds if `n` is part of an SCC of size 2 or more represented by `scc`. */
34+
predicate sccRepr(Node n, TypeFlowScc scc) { scc = Scc::getEquivalenceClass(n) }
35+
36+
predicate sccJoinStep(Node n, TypeFlowScc scc) { none() }

ql/ql/test/modules/test.expected

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ getTarget
88
| Foo.qll:19:38:19:52 | MkThing | Foo.qll:9:16:9:22 | MkThing |
99
| Foo.qll:19:38:19:60 | TypeExpr | Foo.qll:10:20:10:25 | SubMod |
1010
| Foo.qll:19:46:19:51 | TypeExpr | Foo.qll:5:16:5:21 | MyImpl |
11+
| Foo.qll:31:29:31:31 | Scc | Foo.qll:29:16:29:18 | Scc |
12+
| Foo.qll:34:52:34:54 | Scc | Foo.qll:29:16:29:18 | Scc |
1113
getTargetType
1214
| ClassSig.qll:3:23:3:28 | TypeExpr | file://:0:0:0:0 | string |
1315
| ClassSig.qll:7:12:7:17 | TypeExpr | ClassSig.qll:1:17:1:22 | FooSig |
@@ -23,3 +25,11 @@ getTargetType
2325
| Foo.qll:19:38:19:52 | MkThing | Foo.qll:9:16:9:22 | MkThing |
2426
| Foo.qll:19:38:19:60 | TypeExpr | Foo.qll:10:20:10:25 | SubMod |
2527
| Foo.qll:19:46:19:51 | TypeExpr | Foo.qll:5:16:5:21 | MyImpl |
28+
| Foo.qll:23:20:23:22 | TypeExpr | file://:0:0:0:0 | int |
29+
| Foo.qll:27:19:27:22 | TypeExpr | Foo.qll:23:7:23:10 | Node |
30+
| Foo.qll:27:27:27:30 | TypeExpr | Foo.qll:23:7:23:10 | Node |
31+
| Foo.qll:29:54:29:57 | TypeExpr | Foo.qll:23:7:23:10 | Node |
32+
| Foo.qll:31:29:31:31 | Scc | Foo.qll:29:16:29:18 | Scc |
33+
| Foo.qll:34:19:34:22 | TypeExpr | Foo.qll:23:7:23:10 | Node |
34+
| Foo.qll:34:52:34:54 | Scc | Foo.qll:29:16:29:18 | Scc |
35+
| Foo.qll:36:23:36:26 | TypeExpr | Foo.qll:23:7:23:10 | Node |

0 commit comments

Comments
 (0)