diff --git a/ql/src/queries/performance/DontUseGetAQlClass.ql b/ql/src/queries/performance/DontUseGetAQlClass.ql new file mode 100644 index 00000000000..529a9263eec --- /dev/null +++ b/ql/src/queries/performance/DontUseGetAQlClass.ql @@ -0,0 +1,22 @@ +/** + * @name Don't use getAQlClass. + * @description Any use of getAQlClass causes both compile-time and runtime to be significantly slower. + * @kind problem + * @problem.severity warning + * @id ql/dont-use-getAQlClass + * @tags performance + * @precision very-high + */ + +import ql + +from Call call +where + ( + call.(PredicateCall).getPredicateName() = "getAQlClass" or + call.(MemberCall).getMemberName() = "getAQlClass" + ) and + not call.getLocation().getFile().getAbsolutePath().matches("%/" + ["meta", "test"] + "/%") and + not call.getLocation().getFile().getBaseName().toLowerCase() = + ["consistency.ql", "test.ql", "tst.ql", "tests.ql"] +select call, "Don't use .getAQlClass"