@@ -7,18 +7,15 @@ private import codeql.util.Location
7
7
8
8
/** Provides the language-specific input specification. */
9
9
signature module InputSig< LocationSig Location> {
10
- /** The base class for `ControlFlowTree` . */
11
- class ControlFlowTreeBase {
10
+ /** An AST node . */
11
+ class AstNode {
12
12
/** Gets a textual representation of this element. */
13
13
string toString ( ) ;
14
14
15
15
/** Gets the location of this element. */
16
16
Location getLocation ( ) ;
17
17
}
18
18
19
- /** An AST node. */
20
- class AstNode extends ControlFlowTreeBase ;
21
-
22
19
/** A control-flow completion. */
23
20
class Completion {
24
21
/** Gets a textual representation of this completion. */
@@ -127,10 +124,10 @@ signature module InputSig<LocationSig Location> {
127
124
module Make< LocationSig Location, InputSig< Location > Input> {
128
125
private import Input
129
126
130
- final private class ControlFlowTreeBaseFinal = ControlFlowTreeBase ;
127
+ final private class AstNodeFinal = AstNode ;
131
128
132
129
/** An element with associated control flow. */
133
- abstract class ControlFlowTree extends ControlFlowTreeBaseFinal {
130
+ abstract class ControlFlowTree extends AstNodeFinal {
134
131
/** Holds if `first` is the first element executed within this element. */
135
132
pragma [ nomagic]
136
133
abstract predicate first ( AstNode first ) ;
@@ -809,8 +806,6 @@ module Make<LocationSig Location, InputSig<Location> Input> {
809
806
private predicate splitsBlockContains ( AstNode start , AstNode n ) =
810
807
fastTC( intraSplitsSucc / 2 ) ( start , n )
811
808
812
- final private class AstNodeFinal = AstNode ;
813
-
814
809
/**
815
810
* A block of control flow elements where the set of splits is guaranteed
816
811
* to remain unchanged, represented by the first element in the block.
0 commit comments