File tree Expand file tree Collapse file tree
src/codeql_ql/ast/internal Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -153,7 +153,9 @@ module PredConsistency {
153153 strictcount ( PredicateOrBuiltin p0 |
154154 resolveCall ( call , p0 ) and
155155 // aliases are expected to resolve to multiple.
156- not exists ( p0 .( ClasslessPredicate ) .getAlias ( ) )
156+ not exists ( p0 .( ClasslessPredicate ) .getAlias ( ) ) and
157+ // overridden predicates may have multiple targets
158+ not p0 .( ClassPredicate ) .isOverride ( )
157159 ) and
158160 c > 1 and
159161 resolveCall ( call , p )
Original file line number Diff line number Diff line change 1+ import ql
2+
3+ class Foo extends int {
4+ Foo ( ) { this in [ 1 , 2 , 3 ] }
5+
6+ int bar ( ) { result = this }
7+
8+ predicate baz ( int i ) { i = this .bar ( ) }
9+ }
10+
11+ class Bar extends Foo {
12+ Bar ( ) { this = [ 1 , 2 ] }
13+
14+ override int bar ( ) { result = 10 * this }
15+
16+ override predicate baz ( int i ) { i = this .bar ( ) }
17+ }
18+
19+ class Baz extends Foo {
20+ Baz ( ) { this = 1 }
21+
22+ override int bar ( ) { result = 100 * this }
23+
24+ override predicate baz ( int i ) { i = this .bar ( ) }
25+ }
26+
27+ query predicate test ( Foo f , int i , int j ) {
28+ f .bar ( ) = i and
29+ f .baz ( j )
30+ }
Original file line number Diff line number Diff line change @@ -9,6 +9,13 @@ getTarget
99| Foo.qll:31:5:31:12 | PredicateCall | Foo.qll:24:3:24:32 | ClasslessPredicate alias0 |
1010| Foo.qll:36:36:36:65 | MemberCall | file://:0:0:0:0 | replaceAll |
1111| Foo.qll:38:39:38:67 | MemberCall | file://:0:0:0:0 | regexpCapture |
12+ | Overrides.qll:8:30:8:39 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar |
13+ | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar |
14+ | Overrides.qll:16:39:16:48 | MemberCall | Overrides.qll:14:12:14:43 | ClassPredicate bar |
15+ | Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar |
16+ | Overrides.qll:24:39:24:48 | MemberCall | Overrides.qll:22:12:22:44 | ClassPredicate bar |
17+ | Overrides.qll:28:3:28:9 | MemberCall | Overrides.qll:6:3:6:29 | ClassPredicate bar |
18+ | Overrides.qll:29:3:29:10 | MemberCall | Overrides.qll:8:3:8:41 | ClassPredicate baz |
1219| packs/src/SrcThing.qll:4:3:4:8 | PredicateCall | packs/lib/LibThing/Foo.qll:1:1:1:30 | ClasslessPredicate foo |
1320| packs/src/SrcThing.qll:5:3:5:8 | PredicateCall | packs/src/SrcThing.qll:8:1:8:30 | ClasslessPredicate bar |
1421dependsOn
You can’t perform that action at this time.
0 commit comments