Skip to content

Commit 3ee6428

Browse files
authored
QL: improve performance of type resolution
1 parent 12627d1 commit 3ee6428

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

ql/src/codeql_ql/ast/internal/Type.qll

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,14 @@ predicate resolveTypeExpr(TypeExpr te, Type t) {
266266
if primTypeName(te.getClassName())
267267
then t = TPrimitive(te.getClassName())
268268
else
269-
exists(FileOrModule m, boolean public | qualifier(te, m, public) |
270-
defines(m, te.getClassName(), t, public)
269+
exists(FileOrModule m, boolean public, string clName | qualifier(te, m, public, clName) |
270+
defines(m, clName, t, public)
271271
)
272272
}
273273

274-
private predicate qualifier(TypeExpr te, FileOrModule m, boolean public) {
274+
pragma[noinline]
275+
private predicate qualifier(TypeExpr te, FileOrModule m, boolean public, string clName) {
276+
te.getClassName() = clName and
275277
if exists(te.getModule())
276278
then (
277279
public = true and m = te.getModule().getResolvedModule()

0 commit comments

Comments
 (0)