aggregate the tests in library-tests/TypeScript/LocalTypeResolution into a single .ql file

This commit is contained in:
Erik Krogh Kristensen
2020-10-14 14:10:46 +02:00
parent deedc8c2d7
commit a588f438b6
13 changed files with 66 additions and 86 deletions

View File

@@ -1,12 +0,0 @@
| namespaceDecls.ts:27:9:27:9 | A |
| namespaceDecls.ts:28:10:28:10 | A |
| namespaceDecls.ts:28:10:28:12 | A.B |
| namespaceDecls.ts:29:9:29:9 | B |
| namespaceDecls.ts:30:9:30:9 | C |
| namespaceDecls.ts:31:9:31:9 | D |
| namespaceDecls.ts:32:9:32:9 | E |
| namespaceDecls.ts:33:9:33:9 | F |
| namespaceDecls.ts:34:9:34:9 | G |
| namespaceDecls.ts:35:9:35:9 | H |
| namespaceDecls.ts:36:9:36:9 | I |
| typedecls.ts:22:16:22:16 | X |

View File

@@ -1,4 +0,0 @@
import javascript
from NamespaceAccess access
select access

View File

@@ -1,5 +0,0 @@
import javascript
from LocalTypeName name
where not exists(name.getADeclaration())
select name.getScope(), name.toString() + " has no declaration"

View File

@@ -1,2 +0,0 @@
| tst.ts:47:17:47:30 | UnresolvedType | has no local type name (which is ok) |
| tst.ts:50:15:50:19 | Array | has no local type name (which is ok) |

View File

@@ -1,5 +0,0 @@
import javascript
from LocalTypeAccess type
where not exists(type.getLocalTypeName())
select type, "has no local type name (which is ok)"

View File

@@ -1,15 +0,0 @@
| exports.ts:10:5:10:12 | Imported | exports.ts:1:10:1:17 | Imported |
| exports.ts:14:5:14:27 | Uninsta ... mespace | exports.ts:5:11:5:33 | Uninsta ... mespace |
| exports.ts:15:5:15:25 | Instant ... mespace | exports.ts:6:11:6:31 | Instant ... mespace |
| exports.ts:16:5:16:8 | Enum | exports.ts:7:6:7:9 | Enum |
| namespaceDecls.ts:27:9:27:9 | A | namespaceDecls.ts:1:8:1:8 | A |
| namespaceDecls.ts:28:10:28:10 | A | namespaceDecls.ts:1:8:1:8 | A |
| namespaceDecls.ts:29:9:29:9 | B | namespaceDecls.ts:2:8:2:8 | B |
| namespaceDecls.ts:30:9:30:9 | C | namespaceDecls.ts:3:9:3:9 | C |
| namespaceDecls.ts:31:9:31:9 | D | namespaceDecls.ts:3:17:3:17 | D |
| namespaceDecls.ts:32:9:32:9 | E | namespaceDecls.ts:4:13:4:13 | E |
| namespaceDecls.ts:33:9:33:9 | F | namespaceDecls.ts:9:11:9:11 | F |
| namespaceDecls.ts:34:9:34:9 | G | namespaceDecls.ts:13:11:13:11 | G |
| namespaceDecls.ts:35:9:35:9 | H | namespaceDecls.ts:18:19:18:19 | H |
| namespaceDecls.ts:36:9:36:9 | I | namespaceDecls.ts:22:19:22:19 | I |
| typedecls.ts:22:16:22:16 | X | typedecls.ts:1:9:1:9 | X |

View File

@@ -1,4 +0,0 @@
import javascript
from LocalNamespaceName name
select name.getAnAccess(), name.getADeclaration()

View File

@@ -1,33 +0,0 @@
| exports.ts:10:5:10:12 | Imported | exports.ts:1:10:1:17 | Imported |
| exports.ts:12:5:12:9 | Class | exports.ts:3:7:3:11 | Class |
| exports.ts:13:5:13:8 | Type | exports.ts:4:11:4:14 | Type |
| exports.ts:16:5:16:8 | Enum | exports.ts:7:6:7:9 | Enum |
| namespaceDecls.ts:38:8:38:8 | A | namespaceDecls.ts:1:8:1:8 | A |
| namespaceDecls.ts:38:8:38:8 | A | namespaceDecls.ts:6:11:6:11 | A |
| namespaceDecls.ts:39:8:39:8 | E | namespaceDecls.ts:4:13:4:13 | E |
| namespaceDecls.ts:39:8:39:8 | E | namespaceDecls.ts:7:11:7:11 | E |
| tst.ts:6:9:6:9 | I | tst.ts:4:11:4:11 | I |
| tst.ts:8:11:8:11 | I | tst.ts:4:11:4:11 | I |
| tst.ts:13:11:13:11 | I | tst.ts:12:13:12:13 | I |
| tst.ts:17:11:17:11 | I | tst.ts:18:13:18:13 | I |
| tst.ts:24:13:24:13 | I | tst.ts:22:13:22:13 | I |
| tst.ts:27:13:27:13 | I | tst.ts:22:13:22:13 | I |
| tst.ts:30:13:30:13 | I | tst.ts:22:13:22:13 | I |
| tst.ts:37:13:37:13 | I | tst.ts:36:15:36:15 | I |
| tst.ts:39:11:39:11 | I | tst.ts:4:11:4:11 | I |
| tst.ts:42:24:42:24 | I | tst.ts:4:11:4:11 | I |
| tst.ts:42:40:42:40 | I | tst.ts:4:11:4:11 | I |
| tst.ts:50:30:50:30 | I | tst.ts:4:11:4:11 | I |
| typedecls.ts:3:8:3:8 | X | typedecls.ts:1:9:1:9 | X |
| typedecls.ts:4:8:4:14 | Y_alias | typedecls.ts:1:17:1:23 | Y_alias |
| typedecls.ts:7:8:7:8 | C | typedecls.ts:6:7:6:7 | C |
| typedecls.ts:10:8:10:8 | I | typedecls.ts:9:11:9:11 | I |
| typedecls.ts:13:13:13:13 | S | typedecls.ts:12:15:12:15 | S |
| typedecls.ts:16:24:16:24 | T | typedecls.ts:16:18:16:18 | T |
| typedecls.ts:16:28:16:28 | T | typedecls.ts:16:18:16:18 | T |
| typedecls.ts:17:10:17:10 | T | typedecls.ts:16:18:16:18 | T |
| typedecls.ts:20:16:20:16 | G | typedecls.ts:20:10:20:10 | G |
| typedecls.ts:20:22:20:22 | G | typedecls.ts:20:10:20:10 | G |
| typedecls.ts:25:8:25:8 | E | typedecls.ts:24:6:24:6 | E |
| typedecls.ts:27:10:27:10 | X | typedecls.ts:1:9:1:9 | X |
| typedecls.ts:28:8:28:8 | F | typedecls.ts:27:6:27:6 | F |

View File

@@ -1,4 +0,0 @@
import javascript
from LocalTypeName name
select name.getAnAccess(), name.getADeclaration()

View File

@@ -0,0 +1,43 @@
checkResolution
namespaceAccess
| namespaceDecls.ts:27:9:27:9 | A |
| namespaceDecls.ts:28:10:28:10 | A |
| namespaceDecls.ts:28:10:28:12 | A.B |
| namespaceDecls.ts:29:9:29:9 | B |
| namespaceDecls.ts:30:9:30:9 | C |
| namespaceDecls.ts:31:9:31:9 | D |
| namespaceDecls.ts:32:9:32:9 | E |
| namespaceDecls.ts:33:9:33:9 | F |
| namespaceDecls.ts:34:9:34:9 | G |
| namespaceDecls.ts:35:9:35:9 | H |
| namespaceDecls.ts:36:9:36:9 | I |
| typedecls.ts:22:16:22:16 | X |
noDeclaration
noLocalName
| tst.ts:47:17:47:30 | UnresolvedType |
| tst.ts:50:15:50:19 | Array |
resolveNamespaceNames
| A | namespaceDecls.ts:27:9:27:9 | A | namespaceDecls.ts:1:8:1:8 | A |
| A | namespaceDecls.ts:28:10:28:10 | A | namespaceDecls.ts:1:8:1:8 | A |
| B | namespaceDecls.ts:29:9:29:9 | B | namespaceDecls.ts:2:8:2:8 | B |
| C | namespaceDecls.ts:30:9:30:9 | C | namespaceDecls.ts:3:9:3:9 | C |
| D | namespaceDecls.ts:31:9:31:9 | D | namespaceDecls.ts:3:17:3:17 | D |
| E | namespaceDecls.ts:32:9:32:9 | E | namespaceDecls.ts:4:13:4:13 | E |
| Enum | exports.ts:16:5:16:8 | Enum | exports.ts:7:6:7:9 | Enum |
| F | namespaceDecls.ts:33:9:33:9 | F | namespaceDecls.ts:9:11:9:11 | F |
| G | namespaceDecls.ts:34:9:34:9 | G | namespaceDecls.ts:13:11:13:11 | G |
| H | namespaceDecls.ts:35:9:35:9 | H | namespaceDecls.ts:18:19:18:19 | H |
| I | namespaceDecls.ts:36:9:36:9 | I | namespaceDecls.ts:22:19:22:19 | I |
| Imported | exports.ts:10:5:10:12 | Imported | exports.ts:1:10:1:17 | Imported |
| InstantiatedNamespace | exports.ts:15:5:15:25 | Instant ... mespace | exports.ts:6:11:6:31 | Instant ... mespace |
| UninstantiatedNamespace | exports.ts:14:5:14:27 | Uninsta ... mespace | exports.ts:5:11:5:33 | Uninsta ... mespace |
| X | typedecls.ts:22:16:22:16 | X | typedecls.ts:1:9:1:9 | X |
resolveTypeNames
| A | namespaceDecls.ts:38:8:38:8 | A | namespaceDecls.ts:1:8:1:8 | A |
| E | namespaceDecls.ts:39:8:39:8 | E | namespaceDecls.ts:4:13:4:13 | E |
| E | typedecls.ts:25:8:25:8 | E | typedecls.ts:24:6:24:6 | E |
| Enum | exports.ts:16:5:16:8 | Enum | exports.ts:7:6:7:9 | Enum |
| Imported | exports.ts:10:5:10:12 | Imported | exports.ts:1:10:1:17 | Imported |
| X | typedecls.ts:3:8:3:8 | X | typedecls.ts:1:9:1:9 | X |
| X | typedecls.ts:27:10:27:10 | X | typedecls.ts:1:9:1:9 | X |
| Y_alias | typedecls.ts:4:8:4:14 | Y_alias | typedecls.ts:1:17:1:23 | Y_alias |

View File

@@ -29,5 +29,26 @@ class TypeResolutionAssertion extends TupleTypeExpr, Violation {
}
}
from Violation violation
select violation, violation.reason()
query predicate checkResolution(Violation violation, string reason) { violation.reason() = reason }
query predicate namespaceAccess(NamespaceAccess acc) { any() }
query predicate noDeclaration(LocalTypeName name, Scope scope, string msg) {
not exists(name.getADeclaration()) and
name.getScope() = scope and
msg = name.toString() + " has no declaration"
}
query predicate noLocalName(LocalTypeAccess type) { not exists(type.getLocalTypeName()) }
query predicate resolveNamespaceNames(
LocalNamespaceName name, Identifier acc, LocalNamespaceDecl decl
) {
acc = name.getAnAccess() and
decl = name.getADeclaration()
}
query predicate resolveTypeNames(LocalTypeName name, Identifier acc, LocalNamespaceDecl decl) {
acc = name.getAnAccess() and
decl = name.getADeclaration()
}