@@ -3,9 +3,8 @@ private import codeql_ql.ast.internal.TreeSitter
3
3
4
4
class Object extends JSON:: Object {
5
5
JSON:: Value getValue ( string key ) {
6
- exists ( JSON:: Pair p |
7
- p = this .getChild ( _) and p .getKey ( ) .( JSON:: String ) .getChild ( ) .getValue ( ) = key
8
- |
6
+ exists ( JSON:: Pair p | p = this .getChild ( _) |
7
+ key = p .getKey ( ) .( JSON:: String ) .getChild ( ) .getValue ( ) and
9
8
result = p .getValue ( )
10
9
)
11
10
}
@@ -35,104 +34,106 @@ class Array extends JSON::Array {
35
34
Array getArray ( int i ) { result = this .getChild ( i ) }
36
35
}
37
36
38
- abstract class LogEntry extends Object { }
37
+ module EvaluatorLog {
38
+ class Entry extends Object { }
39
39
40
- class LogHeader extends LogEntry {
41
- LogHeader ( ) { this .getType ( ) = "LOG_HEADER" }
40
+ class LogHeader extends Entry {
41
+ LogHeader ( ) { this .getType ( ) = "LOG_HEADER" }
42
42
43
- string getCodeQLVersion ( ) { result = this .getString ( "codeqlVersion" ) }
43
+ string getCodeQLVersion ( ) { result = this .getString ( "codeqlVersion" ) }
44
44
45
- string getLogVersion ( ) { result = this .getString ( "logVersion" ) }
46
- }
45
+ string getLogVersion ( ) { result = this .getString ( "logVersion" ) }
46
+ }
47
47
48
- class QueryStarted extends LogEntry {
49
- QueryStarted ( ) { this .getType ( ) = "QUERY_STARTED" }
48
+ class QueryStarted extends Entry {
49
+ QueryStarted ( ) { this .getType ( ) = "QUERY_STARTED" }
50
50
51
- string getQueryName ( ) { result = this .getString ( "queryName" ) }
51
+ string getQueryName ( ) { result = this .getString ( "queryName" ) }
52
52
53
- int getStage ( int i ) { result = this .getArray ( "stage" ) .getNumber ( i ) }
54
- }
53
+ int getStage ( int i ) { result = this .getArray ( "stage" ) .getNumber ( i ) }
54
+ }
55
55
56
- class PredicateStarted extends LogEntry {
57
- PredicateStarted ( ) { this .getType ( ) = "PREDICATE_STARTED" }
56
+ class PredicateStarted extends Entry {
57
+ PredicateStarted ( ) { this .getType ( ) = "PREDICATE_STARTED" }
58
58
59
- string getPredicateName ( ) { result = this .getString ( "predicateName" ) }
59
+ string getPredicateName ( ) { result = this .getString ( "predicateName" ) }
60
60
61
- string getPosition ( ) { result = this .getString ( "position" ) }
61
+ string getPosition ( ) { result = this .getString ( "position" ) }
62
62
63
- string getPredicateType ( ) { result = this .getString ( "predicateType" ) }
63
+ string getPredicateType ( ) { result = this .getString ( "predicateType" ) }
64
64
65
- int getQueryCausingWork ( ) { result = this .getNumber ( "queryCausingWork" ) }
65
+ int getQueryCausingWork ( ) { result = this .getNumber ( "queryCausingWork" ) }
66
66
67
- string getRAHash ( ) { result = this .getString ( "raHash" ) }
67
+ string getRAHash ( ) { result = this .getString ( "raHash" ) }
68
68
69
- Object getRA ( ) { result = this .getValue ( "ra" ) }
69
+ Object getRA ( ) { result = this .getValue ( "ra" ) }
70
70
71
- string getDependency ( string key ) { result = this .getObject ( "dependencies" ) .getString ( key ) }
72
- }
71
+ string getDependency ( string key ) { result = this .getObject ( "dependencies" ) .getString ( key ) }
72
+ }
73
73
74
- class PipelineStarted extends LogEntry {
75
- PipelineStarted ( ) { this .getType ( ) = "PIPELINE_STARTED" }
74
+ class PipelineStarted extends Entry {
75
+ PipelineStarted ( ) { this .getType ( ) = "PIPELINE_STARTED" }
76
76
77
- int getPredicateStartEvent ( ) { result = this .getNumber ( "predicateStartEvent" ) }
77
+ int getPredicateStartEvent ( ) { result = this .getNumber ( "predicateStartEvent" ) }
78
78
79
- string getRAReference ( ) { result = this .getString ( "raReference" ) }
80
- }
79
+ string getRAReference ( ) { result = this .getString ( "raReference" ) }
80
+ }
81
81
82
- class PipelineCompleted extends LogEntry {
83
- PipelineCompleted ( ) { this .getType ( ) = "PIPELINE_COMPLETED" }
82
+ class PipelineCompleted extends Entry {
83
+ PipelineCompleted ( ) { this .getType ( ) = "PIPELINE_COMPLETED" }
84
84
85
- int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
85
+ int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
86
86
87
- string getRAReference ( ) { result = this .getString ( "raReference" ) }
87
+ string getRAReference ( ) { result = this .getString ( "raReference" ) }
88
88
89
- int getCount ( int i ) { result = this .getArray ( "counts" ) .getNumber ( i ) }
89
+ int getCount ( int i ) { result = this .getArray ( "counts" ) .getNumber ( i ) }
90
90
91
- int getDuplicationPercentage ( int i ) {
92
- result = this .getArray ( "duplicationPercentages" ) .getNumber ( i )
93
- }
91
+ int getDuplicationPercentage ( int i ) {
92
+ result = this .getArray ( "duplicationPercentages" ) .getNumber ( i )
93
+ }
94
94
95
- int getResultSize ( ) { result = this .getNumber ( "resultSize" ) }
96
- }
95
+ int getResultSize ( ) { result = this .getNumber ( "resultSize" ) }
96
+ }
97
97
98
- class PredicateCompleted extends LogEntry {
99
- PredicateCompleted ( ) { this .getType ( ) = "PREDICATE_COMPLETED" }
98
+ class PredicateCompleted extends Entry {
99
+ PredicateCompleted ( ) { this .getType ( ) = "PREDICATE_COMPLETED" }
100
100
101
- int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
101
+ int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
102
102
103
- int getResultSize ( ) { result = this .getNumber ( "resultSize" ) }
104
- }
103
+ int getResultSize ( ) { result = this .getNumber ( "resultSize" ) }
104
+ }
105
105
106
- class QueryCompleted extends LogEntry {
107
- QueryCompleted ( ) { this .getType ( ) = "QUERY_COMPLETED" }
106
+ class QueryCompleted extends Entry {
107
+ QueryCompleted ( ) { this .getType ( ) = "QUERY_COMPLETED" }
108
108
109
- int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
109
+ int getStartEvent ( ) { result = this .getNumber ( "startEvent" ) }
110
110
111
- string getTerminationType ( ) { result = this .getString ( "terminationType" ) }
112
- }
111
+ string getTerminationType ( ) { result = this .getString ( "terminationType" ) }
112
+ }
113
113
114
- class LogFooter extends LogEntry {
115
- LogFooter ( ) { this .getType ( ) = "LOG_FOOTER" }
116
- }
114
+ class LogFooter extends Entry {
115
+ LogFooter ( ) { this .getType ( ) = "LOG_FOOTER" }
116
+ }
117
117
118
- class CacheLookup extends LogEntry {
119
- CacheLookup ( ) { this .getType ( ) = "CACHE_LOOKUP" }
118
+ class CacheLookup extends Entry {
119
+ CacheLookup ( ) { this .getType ( ) = "CACHE_LOOKUP" }
120
120
121
- int getRelationSize ( ) { result = this .getNumber ( "relationSize" ) }
122
- }
121
+ int getRelationSize ( ) { result = this .getNumber ( "relationSize" ) }
122
+ }
123
123
124
- class SentinelEmpty extends LogEntry {
125
- SentinelEmpty ( ) { this .getType ( ) = "SENTINEL_EMPTY" }
124
+ class SentinelEmpty extends Entry {
125
+ SentinelEmpty ( ) { this .getType ( ) = "SENTINEL_EMPTY" }
126
+ }
126
127
}
127
128
128
129
// Stuff to test whether we've covered all event types
129
- private File logFile ( ) { result = any ( LogHeader h ) .getLocation ( ) .getFile ( ) }
130
+ private File logFile ( ) { result = any ( EvaluatorLog :: LogHeader h ) .getLocation ( ) .getFile ( ) }
130
131
131
132
private Object missing ( ) {
132
133
result =
133
134
any ( Object o |
134
135
o .getLocation ( ) .getFile ( ) = logFile ( ) and
135
- not o instanceof LogEntry and
136
+ not o instanceof EvaluatorLog :: Entry and
136
137
not exists ( o .getParent ( ) .getParent ( ) ) // don't count nested objects
137
138
)
138
139
}
0 commit comments