Skip to content

Commit b3e23bc

Browse files
authored
improve performance of type resolution
1 parent a286dc3 commit b3e23bc

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)