From 949ead913f53c12d02db27a9df2f456991069282 Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen Date: Thu, 14 Oct 2021 11:12:22 +0200 Subject: [PATCH] add query to detect uses of getAQlClass --- .../queries/performance/DontUseGetAQlClass.ql | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 ql/src/queries/performance/DontUseGetAQlClass.ql 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"