diff --git a/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/src/codeql_ql/ast/internal/Predicate.qll index 069dd69974c..96e4b5e5dec 100644 --- a/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -79,6 +79,13 @@ private module Cached { t = mc.getBase().getType() and p = t.getClassPredicate(mc.getMemberName(), mc.getNumberOfArguments()) ) + or + // super calls + exists(Super sup, ClassType type | + mc.getBase() = sup and + sup.getEnclosingPredicate().(ClassPredicate).getParent().getType() = type and + p = type.getASuperType().getClassPredicate(mc.getMemberName(), mc.getNumberOfArguments()) + ) } cached