Skip to content

Commit 7da10e0

Browse files
authored
Merge pull request #15095 from hvitved/dataflow/boolean-class
Data flow: Use `Boolean` class
2 parents b78ceb6 + 5a426d1 commit 7da10e0

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
private import codeql.util.Unit
88
private import codeql.util.Option
9+
private import codeql.util.Boolean
910
private import codeql.dataflow.DataFlow
1011

1112
module MakeImpl<InputSig Lang> {
@@ -1183,7 +1184,9 @@ module MakeImpl<InputSig Lang> {
11831184
string toString();
11841185
}
11851186

1186-
class Ap;
1187+
class Ap {
1188+
string toString();
1189+
}
11871190

11881191
class ApNil extends Ap;
11891192

@@ -2432,9 +2435,7 @@ module MakeImpl<InputSig Lang> {
24322435

24332436
class Typ = Unit;
24342437

2435-
class Ap extends boolean {
2436-
Ap() { this in [true, false] }
2437-
}
2438+
class Ap = Boolean;
24382439

24392440
class ApNil extends Ap {
24402441
ApNil() { this = false }

shared/util/codeql/util/Boolean.qll

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
*
66
* As opposed to `boolean`, this type does not require explicit binding.
77
*/
8-
class Boolean extends boolean {
8+
final class Boolean extends FinalBoolean {
99
Boolean() { this = [true, false] }
10+
11+
/** Returns either "true" or "false". */
12+
// reimplement to avoid explicit binding
13+
string toString() { result = super.toString() }
1014
}
15+
16+
final private class FinalBoolean = boolean;

0 commit comments

Comments
 (0)