QL: Merge pull request #5 from github/qltest-testing

Get qlTest to work
This commit is contained in:
Erik Krogh Kristensen 2021-05-26 14:48:20 +02:00 коммит произвёл GitHub
Родитель 36497ad50a 9772f35984
Коммит 54e449f3c6
5 изменённых файлов: 528 добавлений и 5 удалений

Просмотреть файл

@ -8,13 +8,13 @@
*/
import codeql.IDEContextual
import codeql_ql.AST
import codeql_ql.ast.internal.TreeSitter::Generated
external string selectedSourceFile();
from AstNode e, Variable def, string kind
where
e = def.getAnAccess() and
none() and // e = def.getAnAccess() and // TODO: Get binding to work.
kind = "local variable" and
e.getLocation().getFile() = getFileBySourceArchiveName(selectedSourceFile())
select e, def, kind

Просмотреть файл

@ -8,14 +8,13 @@
*/
import codeql.IDEContextual
import codeql_ql.AST
import codeql_ql.ast.Variable
import codeql_ql.ast.internal.TreeSitter::Generated
external string selectedSourceFile();
from AstNode e, Variable def, string kind
where
e = def.getAnAccess() and
none() and // e = def.getAnAccess() and // TODO: Get binding to work.
kind = "local variable" and
def.getLocation().getFile() = getFileBySourceArchiveName(selectedSourceFile())
select e, def, kind

11
ql/test/printAst/Foo.qll Normal file
Просмотреть файл

@ -0,0 +1,11 @@
import javascript
class Foo extends @bar {
Foo() { 1 = 2 }
string toString() { result = "Foo" }
}
query predicate foo(Foo f) {
f = rank[2](Foo inner | inner.toString() = "foo" | inner order by inner.toString())
}

Просмотреть файл

@ -0,0 +1,512 @@
nodes
| Foo.qll:1:1:1:6 | import | semmle.label | [ReservedWord] import |
| Foo.qll:1:1:1:6 | import | semmle.order | 1 |
| Foo.qll:1:1:1:17 | ImportDirective | semmle.label | [ImportDirective] ImportDirective |
| Foo.qll:1:1:1:17 | ImportDirective | semmle.order | 1 |
| Foo.qll:1:1:1:17 | ModuleMember | semmle.label | [ModuleMember] ModuleMember |
| Foo.qll:1:1:1:17 | ModuleMember | semmle.order | 1 |
| Foo.qll:1:1:11:2 | Ql | semmle.label | [Ql] Ql |
| Foo.qll:1:1:11:2 | Ql | semmle.order | 1 |
| Foo.qll:1:8:1:17 | ImportModuleExpr | semmle.label | [ImportModuleExpr] ImportModuleExpr |
| Foo.qll:1:8:1:17 | ImportModuleExpr | semmle.order | 5 |
| Foo.qll:1:8:1:17 | QualModuleExpr | semmle.label | [QualModuleExpr] QualModuleExpr |
| Foo.qll:1:8:1:17 | QualModuleExpr | semmle.order | 5 |
| Foo.qll:1:8:1:17 | javascript | semmle.label | [SimpleId] javascript |
| Foo.qll:1:8:1:17 | javascript | semmle.order | 5 |
| Foo.qll:3:1:3:5 | class | semmle.label | [ReservedWord] class |
| Foo.qll:3:1:3:5 | class | semmle.order | 8 |
| Foo.qll:3:1:7:1 | Dataclass | semmle.label | [Dataclass] Dataclass |
| Foo.qll:3:1:7:1 | Dataclass | semmle.order | 8 |
| Foo.qll:3:1:7:1 | ModuleMember | semmle.label | [ModuleMember] ModuleMember |
| Foo.qll:3:1:7:1 | ModuleMember | semmle.order | 8 |
| Foo.qll:3:7:3:9 | Foo | semmle.label | [ClassName] Foo |
| Foo.qll:3:7:3:9 | Foo | semmle.order | 11 |
| Foo.qll:3:11:3:17 | extends | semmle.label | [ReservedWord] extends |
| Foo.qll:3:11:3:17 | extends | semmle.order | 12 |
| Foo.qll:3:19:3:22 | @bar | semmle.label | [Dbtype] @bar |
| Foo.qll:3:19:3:22 | @bar | semmle.order | 13 |
| Foo.qll:3:19:3:22 | TypeExpr | semmle.label | [TypeExpr] TypeExpr |
| Foo.qll:3:19:3:22 | TypeExpr | semmle.order | 13 |
| Foo.qll:3:24:3:24 | { | semmle.label | [ReservedWord] { |
| Foo.qll:3:24:3:24 | { | semmle.order | 15 |
| Foo.qll:4:3:4:5 | Foo | semmle.label | [ClassName] Foo |
| Foo.qll:4:3:4:5 | Foo | semmle.order | 16 |
| Foo.qll:4:3:4:17 | Charpred | semmle.label | [Charpred] Charpred |
| Foo.qll:4:3:4:17 | Charpred | semmle.order | 16 |
| Foo.qll:4:3:4:17 | ClassMember | semmle.label | [ClassMember] ClassMember |
| Foo.qll:4:3:4:17 | ClassMember | semmle.order | 16 |
| Foo.qll:4:6:4:6 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:4:6:4:6 | ( | semmle.order | 19 |
| Foo.qll:4:7:4:7 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:4:7:4:7 | ) | semmle.order | 20 |
| Foo.qll:4:9:4:9 | { | semmle.label | [ReservedWord] { |
| Foo.qll:4:9:4:9 | { | semmle.order | 21 |
| Foo.qll:4:11:4:11 | 1 | semmle.label | [Integer] 1 |
| Foo.qll:4:11:4:11 | 1 | semmle.order | 22 |
| Foo.qll:4:11:4:11 | Literal | semmle.label | [Literal] Literal |
| Foo.qll:4:11:4:11 | Literal | semmle.order | 22 |
| Foo.qll:4:11:4:15 | CompTerm | semmle.label | [CompTerm] CompTerm |
| Foo.qll:4:11:4:15 | CompTerm | semmle.order | 22 |
| Foo.qll:4:13:4:13 | = | semmle.label | [Compop] = |
| Foo.qll:4:13:4:13 | = | semmle.label | [ReservedWord] = |
| Foo.qll:4:13:4:13 | = | semmle.order | 25 |
| Foo.qll:4:13:4:13 | = | semmle.order | 25 |
| Foo.qll:4:15:4:15 | 2 | semmle.label | [Integer] 2 |
| Foo.qll:4:15:4:15 | 2 | semmle.order | 27 |
| Foo.qll:4:15:4:15 | Literal | semmle.label | [Literal] Literal |
| Foo.qll:4:15:4:15 | Literal | semmle.order | 27 |
| Foo.qll:4:17:4:17 | } | semmle.label | [ReservedWord] } |
| Foo.qll:4:17:4:17 | } | semmle.order | 29 |
| Foo.qll:6:3:6:8 | TypeExpr | semmle.label | [TypeExpr] TypeExpr |
| Foo.qll:6:3:6:8 | TypeExpr | semmle.order | 30 |
| Foo.qll:6:3:6:8 | string | semmle.label | [PrimitiveType] string |
| Foo.qll:6:3:6:8 | string | semmle.label | [ReservedWord] string |
| Foo.qll:6:3:6:8 | string | semmle.order | 30 |
| Foo.qll:6:3:6:8 | string | semmle.order | 30 |
| Foo.qll:6:3:6:38 | ClassMember | semmle.label | [ClassMember] ClassMember |
| Foo.qll:6:3:6:38 | ClassMember | semmle.order | 30 |
| Foo.qll:6:3:6:38 | MemberPredicate | semmle.label | [MemberPredicate] MemberPredicate |
| Foo.qll:6:3:6:38 | MemberPredicate | semmle.order | 30 |
| Foo.qll:6:10:6:17 | toString | semmle.label | [PredicateName] toString |
| Foo.qll:6:10:6:17 | toString | semmle.order | 35 |
| Foo.qll:6:18:6:18 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:6:18:6:18 | ( | semmle.order | 36 |
| Foo.qll:6:19:6:19 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:6:19:6:19 | ) | semmle.order | 37 |
| Foo.qll:6:21:6:21 | { | semmle.label | [ReservedWord] { |
| Foo.qll:6:21:6:21 | { | semmle.order | 38 |
| Foo.qll:6:21:6:38 | Body | semmle.label | [Body] Body |
| Foo.qll:6:21:6:38 | Body | semmle.order | 38 |
| Foo.qll:6:23:6:28 | Variable | semmle.label | [Variable] Variable |
| Foo.qll:6:23:6:28 | Variable | semmle.order | 40 |
| Foo.qll:6:23:6:28 | result | semmle.label | [Result] result |
| Foo.qll:6:23:6:28 | result | semmle.order | 40 |
| Foo.qll:6:23:6:36 | CompTerm | semmle.label | [CompTerm] CompTerm |
| Foo.qll:6:23:6:36 | CompTerm | semmle.order | 40 |
| Foo.qll:6:30:6:30 | = | semmle.label | [Compop] = |
| Foo.qll:6:30:6:30 | = | semmle.label | [ReservedWord] = |
| Foo.qll:6:30:6:30 | = | semmle.order | 43 |
| Foo.qll:6:30:6:30 | = | semmle.order | 43 |
| Foo.qll:6:32:6:36 | "Foo" | semmle.label | [String] "Foo" |
| Foo.qll:6:32:6:36 | "Foo" | semmle.order | 45 |
| Foo.qll:6:32:6:36 | Literal | semmle.label | [Literal] Literal |
| Foo.qll:6:32:6:36 | Literal | semmle.order | 45 |
| Foo.qll:6:38:6:38 | } | semmle.label | [ReservedWord] } |
| Foo.qll:6:38:6:38 | } | semmle.order | 47 |
| Foo.qll:7:1:7:1 | } | semmle.label | [ReservedWord] } |
| Foo.qll:7:1:7:1 | } | semmle.order | 48 |
| Foo.qll:9:1:9:5 | Annotation | semmle.label | [Annotation] Annotation |
| Foo.qll:9:1:9:5 | Annotation | semmle.order | 49 |
| Foo.qll:9:1:9:5 | query | semmle.label | [AnnotName] query |
| Foo.qll:9:1:9:5 | query | semmle.order | 49 |
| Foo.qll:9:1:11:1 | ModuleMember | semmle.label | [ModuleMember] ModuleMember |
| Foo.qll:9:1:11:1 | ModuleMember | semmle.order | 49 |
| Foo.qll:9:7:9:15 | predicate | semmle.label | [Predicate] predicate |
| Foo.qll:9:7:9:15 | predicate | semmle.order | 52 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | semmle.label | [ClasslessPredicate] ClasslessPredicate |
| Foo.qll:9:7:11:1 | ClasslessPredicate | semmle.order | 52 |
| Foo.qll:9:17:9:19 | foo | semmle.label | [PredicateName] foo |
| Foo.qll:9:17:9:19 | foo | semmle.order | 54 |
| Foo.qll:9:20:9:20 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:9:20:9:20 | ( | semmle.order | 55 |
| Foo.qll:9:21:9:23 | Foo | semmle.label | [ClassName] Foo |
| Foo.qll:9:21:9:23 | Foo | semmle.order | 56 |
| Foo.qll:9:21:9:23 | TypeExpr | semmle.label | [TypeExpr] TypeExpr |
| Foo.qll:9:21:9:23 | TypeExpr | semmle.order | 56 |
| Foo.qll:9:21:9:25 | VarDecl | semmle.label | [VarDecl] VarDecl |
| Foo.qll:9:21:9:25 | VarDecl | semmle.order | 56 |
| Foo.qll:9:25:9:25 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:9:25:9:25 | VarName | semmle.order | 59 |
| Foo.qll:9:25:9:25 | f | semmle.label | [SimpleId] f |
| Foo.qll:9:25:9:25 | f | semmle.order | 59 |
| Foo.qll:9:26:9:26 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:9:26:9:26 | ) | semmle.order | 61 |
| Foo.qll:9:28:9:28 | { | semmle.label | [ReservedWord] { |
| Foo.qll:9:28:9:28 | { | semmle.order | 62 |
| Foo.qll:9:28:11:1 | Body | semmle.label | [Body] Body |
| Foo.qll:9:28:11:1 | Body | semmle.order | 62 |
| Foo.qll:10:3:10:3 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:10:3:10:3 | VarName | semmle.order | 64 |
| Foo.qll:10:3:10:3 | Variable | semmle.label | [Variable] Variable |
| Foo.qll:10:3:10:3 | Variable | semmle.order | 64 |
| Foo.qll:10:3:10:3 | f | semmle.label | [SimpleId] f |
| Foo.qll:10:3:10:3 | f | semmle.order | 64 |
| Foo.qll:10:3:10:85 | CompTerm | semmle.label | [CompTerm] CompTerm |
| Foo.qll:10:3:10:85 | CompTerm | semmle.order | 64 |
| Foo.qll:10:5:10:5 | = | semmle.label | [Compop] = |
| Foo.qll:10:5:10:5 | = | semmle.label | [ReservedWord] = |
| Foo.qll:10:5:10:5 | = | semmle.order | 68 |
| Foo.qll:10:5:10:5 | = | semmle.order | 68 |
| Foo.qll:10:7:10:10 | rank | semmle.label | [AggId] rank |
| Foo.qll:10:7:10:10 | rank | semmle.label | [ReservedWord] rank |
| Foo.qll:10:7:10:10 | rank | semmle.order | 70 |
| Foo.qll:10:7:10:10 | rank | semmle.order | 70 |
| Foo.qll:10:7:10:85 | Aggregate | semmle.label | [Aggregate] Aggregate |
| Foo.qll:10:7:10:85 | Aggregate | semmle.order | 70 |
| Foo.qll:10:11:10:11 | [ | semmle.label | [ReservedWord] [ |
| Foo.qll:10:11:10:11 | [ | semmle.order | 73 |
| Foo.qll:10:12:10:12 | 2 | semmle.label | [Integer] 2 |
| Foo.qll:10:12:10:12 | 2 | semmle.order | 74 |
| Foo.qll:10:12:10:12 | Literal | semmle.label | [Literal] Literal |
| Foo.qll:10:12:10:12 | Literal | semmle.order | 74 |
| Foo.qll:10:13:10:13 | ] | semmle.label | [ReservedWord] ] |
| Foo.qll:10:13:10:13 | ] | semmle.order | 76 |
| Foo.qll:10:14:10:14 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:10:14:10:14 | ( | semmle.order | 77 |
| Foo.qll:10:15:10:17 | Foo | semmle.label | [ClassName] Foo |
| Foo.qll:10:15:10:17 | Foo | semmle.order | 78 |
| Foo.qll:10:15:10:17 | TypeExpr | semmle.label | [TypeExpr] TypeExpr |
| Foo.qll:10:15:10:17 | TypeExpr | semmle.order | 78 |
| Foo.qll:10:15:10:23 | VarDecl | semmle.label | [VarDecl] VarDecl |
| Foo.qll:10:15:10:23 | VarDecl | semmle.order | 78 |
| Foo.qll:10:15:10:84 | FullAggregateBody | semmle.label | [FullAggregateBody] FullAggregateBody |
| Foo.qll:10:15:10:84 | FullAggregateBody | semmle.order | 78 |
| Foo.qll:10:19:10:23 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:10:19:10:23 | VarName | semmle.order | 82 |
| Foo.qll:10:19:10:23 | inner | semmle.label | [SimpleId] inner |
| Foo.qll:10:19:10:23 | inner | semmle.order | 82 |
| Foo.qll:10:25:10:25 | \| | semmle.label | [ReservedWord] \| |
| Foo.qll:10:25:10:25 | \| | semmle.order | 84 |
| Foo.qll:10:27:10:31 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:10:27:10:31 | VarName | semmle.order | 85 |
| Foo.qll:10:27:10:31 | Variable | semmle.label | [Variable] Variable |
| Foo.qll:10:27:10:31 | Variable | semmle.order | 85 |
| Foo.qll:10:27:10:31 | inner | semmle.label | [SimpleId] inner |
| Foo.qll:10:27:10:31 | inner | semmle.order | 85 |
| Foo.qll:10:27:10:42 | QualifiedExpr | semmle.label | [QualifiedExpr] QualifiedExpr |
| Foo.qll:10:27:10:42 | QualifiedExpr | semmle.order | 85 |
| Foo.qll:10:27:10:50 | CompTerm | semmle.label | [CompTerm] CompTerm |
| Foo.qll:10:27:10:50 | CompTerm | semmle.order | 85 |
| Foo.qll:10:32:10:32 | . | semmle.label | [ReservedWord] . |
| Foo.qll:10:32:10:32 | . | semmle.order | 90 |
| Foo.qll:10:33:10:40 | toString | semmle.label | [PredicateName] toString |
| Foo.qll:10:33:10:40 | toString | semmle.order | 91 |
| Foo.qll:10:33:10:42 | QualifiedRhs | semmle.label | [QualifiedRhs] QualifiedRhs |
| Foo.qll:10:33:10:42 | QualifiedRhs | semmle.order | 91 |
| Foo.qll:10:41:10:41 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:10:41:10:41 | ( | semmle.order | 93 |
| Foo.qll:10:42:10:42 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:10:42:10:42 | ) | semmle.order | 94 |
| Foo.qll:10:44:10:44 | = | semmle.label | [Compop] = |
| Foo.qll:10:44:10:44 | = | semmle.label | [ReservedWord] = |
| Foo.qll:10:44:10:44 | = | semmle.order | 95 |
| Foo.qll:10:44:10:44 | = | semmle.order | 95 |
| Foo.qll:10:46:10:50 | "foo" | semmle.label | [String] "foo" |
| Foo.qll:10:46:10:50 | "foo" | semmle.order | 97 |
| Foo.qll:10:46:10:50 | Literal | semmle.label | [Literal] Literal |
| Foo.qll:10:46:10:50 | Literal | semmle.order | 97 |
| Foo.qll:10:52:10:52 | \| | semmle.label | [ReservedWord] \| |
| Foo.qll:10:52:10:52 | \| | semmle.order | 99 |
| Foo.qll:10:54:10:58 | AsExpr | semmle.label | [AsExpr] AsExpr |
| Foo.qll:10:54:10:58 | AsExpr | semmle.order | 100 |
| Foo.qll:10:54:10:58 | AsExprs | semmle.label | [AsExprs] AsExprs |
| Foo.qll:10:54:10:58 | AsExprs | semmle.order | 100 |
| Foo.qll:10:54:10:58 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:10:54:10:58 | VarName | semmle.order | 100 |
| Foo.qll:10:54:10:58 | Variable | semmle.label | [Variable] Variable |
| Foo.qll:10:54:10:58 | Variable | semmle.order | 100 |
| Foo.qll:10:54:10:58 | inner | semmle.label | [SimpleId] inner |
| Foo.qll:10:54:10:58 | inner | semmle.order | 100 |
| Foo.qll:10:60:10:64 | order | semmle.label | [ReservedWord] order |
| Foo.qll:10:60:10:64 | order | semmle.order | 105 |
| Foo.qll:10:60:10:84 | OrderBys | semmle.label | [OrderBys] OrderBys |
| Foo.qll:10:60:10:84 | OrderBys | semmle.order | 105 |
| Foo.qll:10:66:10:67 | by | semmle.label | [ReservedWord] by |
| Foo.qll:10:66:10:67 | by | semmle.order | 107 |
| Foo.qll:10:69:10:73 | VarName | semmle.label | [VarName] VarName |
| Foo.qll:10:69:10:73 | VarName | semmle.order | 108 |
| Foo.qll:10:69:10:73 | Variable | semmle.label | [Variable] Variable |
| Foo.qll:10:69:10:73 | Variable | semmle.order | 108 |
| Foo.qll:10:69:10:73 | inner | semmle.label | [SimpleId] inner |
| Foo.qll:10:69:10:73 | inner | semmle.order | 108 |
| Foo.qll:10:69:10:84 | OrderBy | semmle.label | [OrderBy] OrderBy |
| Foo.qll:10:69:10:84 | OrderBy | semmle.order | 108 |
| Foo.qll:10:69:10:84 | QualifiedExpr | semmle.label | [QualifiedExpr] QualifiedExpr |
| Foo.qll:10:69:10:84 | QualifiedExpr | semmle.order | 108 |
| Foo.qll:10:74:10:74 | . | semmle.label | [ReservedWord] . |
| Foo.qll:10:74:10:74 | . | semmle.order | 113 |
| Foo.qll:10:75:10:82 | toString | semmle.label | [PredicateName] toString |
| Foo.qll:10:75:10:82 | toString | semmle.order | 114 |
| Foo.qll:10:75:10:84 | QualifiedRhs | semmle.label | [QualifiedRhs] QualifiedRhs |
| Foo.qll:10:75:10:84 | QualifiedRhs | semmle.order | 114 |
| Foo.qll:10:83:10:83 | ( | semmle.label | [ReservedWord] ( |
| Foo.qll:10:83:10:83 | ( | semmle.order | 116 |
| Foo.qll:10:84:10:84 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:10:84:10:84 | ) | semmle.order | 117 |
| Foo.qll:10:85:10:85 | ) | semmle.label | [ReservedWord] ) |
| Foo.qll:10:85:10:85 | ) | semmle.order | 118 |
| Foo.qll:11:1:11:1 | } | semmle.label | [ReservedWord] } |
| Foo.qll:11:1:11:1 | } | semmle.order | 119 |
| printAst.ql:1:1:1:6 | import | semmle.label | [ReservedWord] import |
| printAst.ql:1:1:1:6 | import | semmle.order | 120 |
| printAst.ql:1:1:1:25 | ImportDirective | semmle.label | [ImportDirective] ImportDirective |
| printAst.ql:1:1:1:25 | ImportDirective | semmle.order | 120 |
| printAst.ql:1:1:1:25 | ModuleMember | semmle.label | [ModuleMember] ModuleMember |
| printAst.ql:1:1:1:25 | ModuleMember | semmle.order | 120 |
| printAst.ql:1:1:1:26 | Ql | semmle.label | [Ql] Ql |
| printAst.ql:1:1:1:26 | Ql | semmle.order | 120 |
| printAst.ql:1:8:1:16 | codeql_ql | semmle.label | [SimpleId] codeql_ql |
| printAst.ql:1:8:1:16 | codeql_ql | semmle.order | 124 |
| printAst.ql:1:8:1:25 | ImportModuleExpr | semmle.label | [ImportModuleExpr] ImportModuleExpr |
| printAst.ql:1:8:1:25 | ImportModuleExpr | semmle.order | 124 |
| printAst.ql:1:8:1:25 | QualModuleExpr | semmle.label | [QualModuleExpr] QualModuleExpr |
| printAst.ql:1:8:1:25 | QualModuleExpr | semmle.order | 124 |
| printAst.ql:1:17:1:17 | . | semmle.label | [ReservedWord] . |
| printAst.ql:1:17:1:17 | . | semmle.order | 127 |
| printAst.ql:1:18:1:25 | printAst | semmle.label | [SimpleId] printAst |
| printAst.ql:1:18:1:25 | printAst | semmle.order | 128 |
edges
| Foo.qll:1:1:1:17 | ImportDirective | Foo.qll:1:1:1:6 | import | semmle.label | 1 |
| Foo.qll:1:1:1:17 | ImportDirective | Foo.qll:1:1:1:6 | import | semmle.order | 1 |
| Foo.qll:1:1:1:17 | ImportDirective | Foo.qll:1:8:1:17 | ImportModuleExpr | semmle.label | 2 |
| Foo.qll:1:1:1:17 | ImportDirective | Foo.qll:1:8:1:17 | ImportModuleExpr | semmle.order | 5 |
| Foo.qll:1:1:1:17 | ModuleMember | Foo.qll:1:1:1:17 | ImportDirective | semmle.label | 1 |
| Foo.qll:1:1:1:17 | ModuleMember | Foo.qll:1:1:1:17 | ImportDirective | semmle.order | 1 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:1:1:1:17 | ModuleMember | semmle.label | 1 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:1:1:1:17 | ModuleMember | semmle.order | 1 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:3:1:7:1 | ModuleMember | semmle.label | 2 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:3:1:7:1 | ModuleMember | semmle.order | 8 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:9:1:11:1 | ModuleMember | semmle.label | 3 |
| Foo.qll:1:1:11:2 | Ql | Foo.qll:9:1:11:1 | ModuleMember | semmle.order | 49 |
| Foo.qll:1:8:1:17 | ImportModuleExpr | Foo.qll:1:8:1:17 | QualModuleExpr | semmle.label | 1 |
| Foo.qll:1:8:1:17 | ImportModuleExpr | Foo.qll:1:8:1:17 | QualModuleExpr | semmle.order | 5 |
| Foo.qll:1:8:1:17 | QualModuleExpr | Foo.qll:1:8:1:17 | javascript | semmle.label | 1 |
| Foo.qll:1:8:1:17 | QualModuleExpr | Foo.qll:1:8:1:17 | javascript | semmle.order | 5 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:1:3:5 | class | semmle.label | 1 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:1:3:5 | class | semmle.order | 8 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:7:3:9 | Foo | semmle.label | 2 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:7:3:9 | Foo | semmle.order | 11 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:11:3:17 | extends | semmle.label | 3 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:11:3:17 | extends | semmle.order | 12 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:19:3:22 | TypeExpr | semmle.label | 4 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:19:3:22 | TypeExpr | semmle.order | 13 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:24:3:24 | { | semmle.label | 5 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:3:24:3:24 | { | semmle.order | 15 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:4:3:4:17 | ClassMember | semmle.label | 6 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:4:3:4:17 | ClassMember | semmle.order | 16 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:6:3:6:38 | ClassMember | semmle.label | 7 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:6:3:6:38 | ClassMember | semmle.order | 30 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:7:1:7:1 | } | semmle.label | 8 |
| Foo.qll:3:1:7:1 | Dataclass | Foo.qll:7:1:7:1 | } | semmle.order | 48 |
| Foo.qll:3:1:7:1 | ModuleMember | Foo.qll:3:1:7:1 | Dataclass | semmle.label | 1 |
| Foo.qll:3:1:7:1 | ModuleMember | Foo.qll:3:1:7:1 | Dataclass | semmle.order | 8 |
| Foo.qll:3:19:3:22 | TypeExpr | Foo.qll:3:19:3:22 | @bar | semmle.label | 1 |
| Foo.qll:3:19:3:22 | TypeExpr | Foo.qll:3:19:3:22 | @bar | semmle.order | 13 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:3:4:5 | Foo | semmle.label | 1 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:3:4:5 | Foo | semmle.order | 16 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:6:4:6 | ( | semmle.label | 2 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:6:4:6 | ( | semmle.order | 19 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:7:4:7 | ) | semmle.label | 3 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:7:4:7 | ) | semmle.order | 20 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:9:4:9 | { | semmle.label | 4 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:9:4:9 | { | semmle.order | 21 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:11:4:15 | CompTerm | semmle.label | 5 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:11:4:15 | CompTerm | semmle.order | 22 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:17:4:17 | } | semmle.label | 6 |
| Foo.qll:4:3:4:17 | Charpred | Foo.qll:4:17:4:17 | } | semmle.order | 29 |
| Foo.qll:4:3:4:17 | ClassMember | Foo.qll:4:3:4:17 | Charpred | semmle.label | 1 |
| Foo.qll:4:3:4:17 | ClassMember | Foo.qll:4:3:4:17 | Charpred | semmle.order | 16 |
| Foo.qll:4:11:4:11 | Literal | Foo.qll:4:11:4:11 | 1 | semmle.label | 1 |
| Foo.qll:4:11:4:11 | Literal | Foo.qll:4:11:4:11 | 1 | semmle.order | 22 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:11:4:11 | Literal | semmle.label | 1 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:11:4:11 | Literal | semmle.order | 22 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:13:4:13 | = | semmle.label | 2 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:13:4:13 | = | semmle.order | 25 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:15:4:15 | Literal | semmle.label | 3 |
| Foo.qll:4:11:4:15 | CompTerm | Foo.qll:4:15:4:15 | Literal | semmle.order | 27 |
| Foo.qll:4:13:4:13 | = | Foo.qll:4:13:4:13 | = | semmle.label | 1 |
| Foo.qll:4:13:4:13 | = | Foo.qll:4:13:4:13 | = | semmle.order | 25 |
| Foo.qll:4:15:4:15 | Literal | Foo.qll:4:15:4:15 | 2 | semmle.label | 1 |
| Foo.qll:4:15:4:15 | Literal | Foo.qll:4:15:4:15 | 2 | semmle.order | 27 |
| Foo.qll:6:3:6:8 | TypeExpr | Foo.qll:6:3:6:8 | string | semmle.label | 1 |
| Foo.qll:6:3:6:8 | TypeExpr | Foo.qll:6:3:6:8 | string | semmle.order | 30 |
| Foo.qll:6:3:6:8 | string | Foo.qll:6:3:6:8 | string | semmle.label | 1 |
| Foo.qll:6:3:6:8 | string | Foo.qll:6:3:6:8 | string | semmle.order | 30 |
| Foo.qll:6:3:6:38 | ClassMember | Foo.qll:6:3:6:38 | MemberPredicate | semmle.label | 1 |
| Foo.qll:6:3:6:38 | ClassMember | Foo.qll:6:3:6:38 | MemberPredicate | semmle.order | 30 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:3:6:8 | TypeExpr | semmle.label | 1 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:3:6:8 | TypeExpr | semmle.order | 30 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:10:6:17 | toString | semmle.label | 2 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:10:6:17 | toString | semmle.order | 35 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:18:6:18 | ( | semmle.label | 3 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:18:6:18 | ( | semmle.order | 36 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:19:6:19 | ) | semmle.label | 4 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:19:6:19 | ) | semmle.order | 37 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:21:6:38 | Body | semmle.label | 5 |
| Foo.qll:6:3:6:38 | MemberPredicate | Foo.qll:6:21:6:38 | Body | semmle.order | 38 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:21:6:21 | { | semmle.label | 1 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:21:6:21 | { | semmle.order | 38 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:23:6:36 | CompTerm | semmle.label | 2 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:23:6:36 | CompTerm | semmle.order | 40 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:38:6:38 | } | semmle.label | 3 |
| Foo.qll:6:21:6:38 | Body | Foo.qll:6:38:6:38 | } | semmle.order | 47 |
| Foo.qll:6:23:6:28 | Variable | Foo.qll:6:23:6:28 | result | semmle.label | 1 |
| Foo.qll:6:23:6:28 | Variable | Foo.qll:6:23:6:28 | result | semmle.order | 40 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:23:6:28 | Variable | semmle.label | 1 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:23:6:28 | Variable | semmle.order | 40 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:30:6:30 | = | semmle.label | 2 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:30:6:30 | = | semmle.order | 43 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:32:6:36 | Literal | semmle.label | 3 |
| Foo.qll:6:23:6:36 | CompTerm | Foo.qll:6:32:6:36 | Literal | semmle.order | 45 |
| Foo.qll:6:30:6:30 | = | Foo.qll:6:30:6:30 | = | semmle.label | 1 |
| Foo.qll:6:30:6:30 | = | Foo.qll:6:30:6:30 | = | semmle.order | 43 |
| Foo.qll:6:32:6:36 | Literal | Foo.qll:6:32:6:36 | "Foo" | semmle.label | 1 |
| Foo.qll:6:32:6:36 | Literal | Foo.qll:6:32:6:36 | "Foo" | semmle.order | 45 |
| Foo.qll:9:1:9:5 | Annotation | Foo.qll:9:1:9:5 | query | semmle.label | 1 |
| Foo.qll:9:1:9:5 | Annotation | Foo.qll:9:1:9:5 | query | semmle.order | 49 |
| Foo.qll:9:1:11:1 | ModuleMember | Foo.qll:9:1:9:5 | Annotation | semmle.label | 1 |
| Foo.qll:9:1:11:1 | ModuleMember | Foo.qll:9:1:9:5 | Annotation | semmle.order | 49 |
| Foo.qll:9:1:11:1 | ModuleMember | Foo.qll:9:7:11:1 | ClasslessPredicate | semmle.label | 2 |
| Foo.qll:9:1:11:1 | ModuleMember | Foo.qll:9:7:11:1 | ClasslessPredicate | semmle.order | 52 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:7:9:15 | predicate | semmle.label | 1 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:7:9:15 | predicate | semmle.order | 52 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:17:9:19 | foo | semmle.label | 2 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:17:9:19 | foo | semmle.order | 54 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:20:9:20 | ( | semmle.label | 3 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:20:9:20 | ( | semmle.order | 55 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:21:9:25 | VarDecl | semmle.label | 4 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:21:9:25 | VarDecl | semmle.order | 56 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:26:9:26 | ) | semmle.label | 5 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:26:9:26 | ) | semmle.order | 61 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:28:11:1 | Body | semmle.label | 6 |
| Foo.qll:9:7:11:1 | ClasslessPredicate | Foo.qll:9:28:11:1 | Body | semmle.order | 62 |
| Foo.qll:9:21:9:23 | TypeExpr | Foo.qll:9:21:9:23 | Foo | semmle.label | 1 |
| Foo.qll:9:21:9:23 | TypeExpr | Foo.qll:9:21:9:23 | Foo | semmle.order | 56 |
| Foo.qll:9:21:9:25 | VarDecl | Foo.qll:9:21:9:23 | TypeExpr | semmle.label | 1 |
| Foo.qll:9:21:9:25 | VarDecl | Foo.qll:9:21:9:23 | TypeExpr | semmle.order | 56 |
| Foo.qll:9:21:9:25 | VarDecl | Foo.qll:9:25:9:25 | VarName | semmle.label | 2 |
| Foo.qll:9:21:9:25 | VarDecl | Foo.qll:9:25:9:25 | VarName | semmle.order | 59 |
| Foo.qll:9:25:9:25 | VarName | Foo.qll:9:25:9:25 | f | semmle.label | 1 |
| Foo.qll:9:25:9:25 | VarName | Foo.qll:9:25:9:25 | f | semmle.order | 59 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:9:28:9:28 | { | semmle.label | 1 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:9:28:9:28 | { | semmle.order | 62 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:10:3:10:85 | CompTerm | semmle.label | 2 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:10:3:10:85 | CompTerm | semmle.order | 64 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:11:1:11:1 | } | semmle.label | 3 |
| Foo.qll:9:28:11:1 | Body | Foo.qll:11:1:11:1 | } | semmle.order | 119 |
| Foo.qll:10:3:10:3 | VarName | Foo.qll:10:3:10:3 | f | semmle.label | 1 |
| Foo.qll:10:3:10:3 | VarName | Foo.qll:10:3:10:3 | f | semmle.order | 64 |
| Foo.qll:10:3:10:3 | Variable | Foo.qll:10:3:10:3 | VarName | semmle.label | 1 |
| Foo.qll:10:3:10:3 | Variable | Foo.qll:10:3:10:3 | VarName | semmle.order | 64 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:3:10:3 | Variable | semmle.label | 1 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:3:10:3 | Variable | semmle.order | 64 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:5:10:5 | = | semmle.label | 2 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:5:10:5 | = | semmle.order | 68 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:7:10:85 | Aggregate | semmle.label | 3 |
| Foo.qll:10:3:10:85 | CompTerm | Foo.qll:10:7:10:85 | Aggregate | semmle.order | 70 |
| Foo.qll:10:5:10:5 | = | Foo.qll:10:5:10:5 | = | semmle.label | 1 |
| Foo.qll:10:5:10:5 | = | Foo.qll:10:5:10:5 | = | semmle.order | 68 |
| Foo.qll:10:7:10:10 | rank | Foo.qll:10:7:10:10 | rank | semmle.label | 1 |
| Foo.qll:10:7:10:10 | rank | Foo.qll:10:7:10:10 | rank | semmle.order | 70 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:7:10:10 | rank | semmle.label | 1 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:7:10:10 | rank | semmle.order | 70 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:11:10:11 | [ | semmle.label | 2 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:11:10:11 | [ | semmle.order | 73 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:12:10:12 | Literal | semmle.label | 3 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:12:10:12 | Literal | semmle.order | 74 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:13:10:13 | ] | semmle.label | 4 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:13:10:13 | ] | semmle.order | 76 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:14:10:14 | ( | semmle.label | 5 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:14:10:14 | ( | semmle.order | 77 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:15:10:84 | FullAggregateBody | semmle.label | 6 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:15:10:84 | FullAggregateBody | semmle.order | 78 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:85:10:85 | ) | semmle.label | 7 |
| Foo.qll:10:7:10:85 | Aggregate | Foo.qll:10:85:10:85 | ) | semmle.order | 118 |
| Foo.qll:10:12:10:12 | Literal | Foo.qll:10:12:10:12 | 2 | semmle.label | 1 |
| Foo.qll:10:12:10:12 | Literal | Foo.qll:10:12:10:12 | 2 | semmle.order | 74 |
| Foo.qll:10:15:10:17 | TypeExpr | Foo.qll:10:15:10:17 | Foo | semmle.label | 1 |
| Foo.qll:10:15:10:17 | TypeExpr | Foo.qll:10:15:10:17 | Foo | semmle.order | 78 |
| Foo.qll:10:15:10:23 | VarDecl | Foo.qll:10:15:10:17 | TypeExpr | semmle.label | 1 |
| Foo.qll:10:15:10:23 | VarDecl | Foo.qll:10:15:10:17 | TypeExpr | semmle.order | 78 |
| Foo.qll:10:15:10:23 | VarDecl | Foo.qll:10:19:10:23 | VarName | semmle.label | 2 |
| Foo.qll:10:15:10:23 | VarDecl | Foo.qll:10:19:10:23 | VarName | semmle.order | 82 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:15:10:23 | VarDecl | semmle.label | 1 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:15:10:23 | VarDecl | semmle.order | 78 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:25:10:25 | \| | semmle.label | 2 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:25:10:25 | \| | semmle.order | 84 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:27:10:50 | CompTerm | semmle.label | 3 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:27:10:50 | CompTerm | semmle.order | 85 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:52:10:52 | \| | semmle.label | 4 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:52:10:52 | \| | semmle.order | 99 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:54:10:58 | AsExprs | semmle.label | 5 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:54:10:58 | AsExprs | semmle.order | 100 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:60:10:84 | OrderBys | semmle.label | 6 |
| Foo.qll:10:15:10:84 | FullAggregateBody | Foo.qll:10:60:10:84 | OrderBys | semmle.order | 105 |
| Foo.qll:10:19:10:23 | VarName | Foo.qll:10:19:10:23 | inner | semmle.label | 1 |
| Foo.qll:10:19:10:23 | VarName | Foo.qll:10:19:10:23 | inner | semmle.order | 82 |
| Foo.qll:10:27:10:31 | VarName | Foo.qll:10:27:10:31 | inner | semmle.label | 1 |
| Foo.qll:10:27:10:31 | VarName | Foo.qll:10:27:10:31 | inner | semmle.order | 85 |
| Foo.qll:10:27:10:31 | Variable | Foo.qll:10:27:10:31 | VarName | semmle.label | 1 |
| Foo.qll:10:27:10:31 | Variable | Foo.qll:10:27:10:31 | VarName | semmle.order | 85 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:27:10:31 | Variable | semmle.label | 1 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:27:10:31 | Variable | semmle.order | 85 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:32:10:32 | . | semmle.label | 2 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:32:10:32 | . | semmle.order | 90 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:33:10:42 | QualifiedRhs | semmle.label | 3 |
| Foo.qll:10:27:10:42 | QualifiedExpr | Foo.qll:10:33:10:42 | QualifiedRhs | semmle.order | 91 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:27:10:42 | QualifiedExpr | semmle.label | 1 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:27:10:42 | QualifiedExpr | semmle.order | 85 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:44:10:44 | = | semmle.label | 2 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:44:10:44 | = | semmle.order | 95 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:46:10:50 | Literal | semmle.label | 3 |
| Foo.qll:10:27:10:50 | CompTerm | Foo.qll:10:46:10:50 | Literal | semmle.order | 97 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:33:10:40 | toString | semmle.label | 1 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:33:10:40 | toString | semmle.order | 91 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:41:10:41 | ( | semmle.label | 2 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:41:10:41 | ( | semmle.order | 93 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:42:10:42 | ) | semmle.label | 3 |
| Foo.qll:10:33:10:42 | QualifiedRhs | Foo.qll:10:42:10:42 | ) | semmle.order | 94 |
| Foo.qll:10:44:10:44 | = | Foo.qll:10:44:10:44 | = | semmle.label | 1 |
| Foo.qll:10:44:10:44 | = | Foo.qll:10:44:10:44 | = | semmle.order | 95 |
| Foo.qll:10:46:10:50 | Literal | Foo.qll:10:46:10:50 | "foo" | semmle.label | 1 |
| Foo.qll:10:46:10:50 | Literal | Foo.qll:10:46:10:50 | "foo" | semmle.order | 97 |
| Foo.qll:10:54:10:58 | AsExpr | Foo.qll:10:54:10:58 | Variable | semmle.label | 1 |
| Foo.qll:10:54:10:58 | AsExpr | Foo.qll:10:54:10:58 | Variable | semmle.order | 100 |
| Foo.qll:10:54:10:58 | AsExprs | Foo.qll:10:54:10:58 | AsExpr | semmle.label | 1 |
| Foo.qll:10:54:10:58 | AsExprs | Foo.qll:10:54:10:58 | AsExpr | semmle.order | 100 |
| Foo.qll:10:54:10:58 | VarName | Foo.qll:10:54:10:58 | inner | semmle.label | 1 |
| Foo.qll:10:54:10:58 | VarName | Foo.qll:10:54:10:58 | inner | semmle.order | 100 |
| Foo.qll:10:54:10:58 | Variable | Foo.qll:10:54:10:58 | VarName | semmle.label | 1 |
| Foo.qll:10:54:10:58 | Variable | Foo.qll:10:54:10:58 | VarName | semmle.order | 100 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:60:10:64 | order | semmle.label | 1 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:60:10:64 | order | semmle.order | 105 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:66:10:67 | by | semmle.label | 2 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:66:10:67 | by | semmle.order | 107 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:69:10:84 | OrderBy | semmle.label | 3 |
| Foo.qll:10:60:10:84 | OrderBys | Foo.qll:10:69:10:84 | OrderBy | semmle.order | 108 |
| Foo.qll:10:69:10:73 | VarName | Foo.qll:10:69:10:73 | inner | semmle.label | 1 |
| Foo.qll:10:69:10:73 | VarName | Foo.qll:10:69:10:73 | inner | semmle.order | 108 |
| Foo.qll:10:69:10:73 | Variable | Foo.qll:10:69:10:73 | VarName | semmle.label | 1 |
| Foo.qll:10:69:10:73 | Variable | Foo.qll:10:69:10:73 | VarName | semmle.order | 108 |
| Foo.qll:10:69:10:84 | OrderBy | Foo.qll:10:69:10:84 | QualifiedExpr | semmle.label | 1 |
| Foo.qll:10:69:10:84 | OrderBy | Foo.qll:10:69:10:84 | QualifiedExpr | semmle.order | 108 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:69:10:73 | Variable | semmle.label | 1 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:69:10:73 | Variable | semmle.order | 108 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:74:10:74 | . | semmle.label | 2 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:74:10:74 | . | semmle.order | 113 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:75:10:84 | QualifiedRhs | semmle.label | 3 |
| Foo.qll:10:69:10:84 | QualifiedExpr | Foo.qll:10:75:10:84 | QualifiedRhs | semmle.order | 114 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:75:10:82 | toString | semmle.label | 1 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:75:10:82 | toString | semmle.order | 114 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:83:10:83 | ( | semmle.label | 2 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:83:10:83 | ( | semmle.order | 116 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:84:10:84 | ) | semmle.label | 3 |
| Foo.qll:10:75:10:84 | QualifiedRhs | Foo.qll:10:84:10:84 | ) | semmle.order | 117 |
| printAst.ql:1:1:1:25 | ImportDirective | printAst.ql:1:1:1:6 | import | semmle.label | 1 |
| printAst.ql:1:1:1:25 | ImportDirective | printAst.ql:1:1:1:6 | import | semmle.order | 120 |
| printAst.ql:1:1:1:25 | ImportDirective | printAst.ql:1:8:1:25 | ImportModuleExpr | semmle.label | 2 |
| printAst.ql:1:1:1:25 | ImportDirective | printAst.ql:1:8:1:25 | ImportModuleExpr | semmle.order | 124 |
| printAst.ql:1:1:1:25 | ModuleMember | printAst.ql:1:1:1:25 | ImportDirective | semmle.label | 1 |
| printAst.ql:1:1:1:25 | ModuleMember | printAst.ql:1:1:1:25 | ImportDirective | semmle.order | 120 |
| printAst.ql:1:1:1:26 | Ql | printAst.ql:1:1:1:25 | ModuleMember | semmle.label | 1 |
| printAst.ql:1:1:1:26 | Ql | printAst.ql:1:1:1:25 | ModuleMember | semmle.order | 120 |
| printAst.ql:1:8:1:25 | ImportModuleExpr | printAst.ql:1:8:1:25 | QualModuleExpr | semmle.label | 1 |
| printAst.ql:1:8:1:25 | ImportModuleExpr | printAst.ql:1:8:1:25 | QualModuleExpr | semmle.order | 124 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:8:1:16 | codeql_ql | semmle.label | 1 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:8:1:16 | codeql_ql | semmle.order | 124 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:17:1:17 | . | semmle.label | 2 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:17:1:17 | . | semmle.order | 127 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:18:1:25 | printAst | semmle.label | 3 |
| printAst.ql:1:8:1:25 | QualModuleExpr | printAst.ql:1:18:1:25 | printAst | semmle.order | 128 |
graphProperties
| semmle.graphKind | tree |

Просмотреть файл

@ -0,0 +1 @@
import codeql_ql.printAst