File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -19,3 +19,18 @@ import SimpleMod
1919private 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 ( ) }
Original file line number Diff line number Diff 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 |
1113getTargetType
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 |
You can’t perform that action at this time.
0 commit comments