mirror of
https://github.com/github/codeql.git
synced 2026-04-22 15:25:18 +02:00
add a isSignature() predicate to ClasslessPredicate
This commit is contained in:
@@ -521,6 +521,9 @@ class ClasslessPredicate extends TClasslessPredicate, Predicate, ModuleDeclarati
|
||||
}
|
||||
|
||||
override predicate isPrivate() { Predicate.super.isPrivate() }
|
||||
|
||||
/** Holds if this classless predicate is a signature predicate with no body. */
|
||||
predicate isSignature() { not exists(this.getBody()) }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -211,7 +211,7 @@ module PredConsistency {
|
||||
c > 1 and
|
||||
resolvePredicateExpr(pe, p) and
|
||||
// parameterized modules are expected to resolve to multiple.
|
||||
not exists(Predicate sig | not exists(sig.getBody()) and resolvePredicateExpr(pe, sig))
|
||||
not exists(ClasslessPredicate sig | not sig.isSignature() and resolvePredicateExpr(pe, sig))
|
||||
}
|
||||
|
||||
query predicate multipleResolveCall(Call call, int c, PredicateOrBuiltin p) {
|
||||
@@ -227,6 +227,6 @@ module PredConsistency {
|
||||
c > 1 and
|
||||
resolveCall(call, p) and
|
||||
// parameterized modules are expected to resolve to multiple.
|
||||
not exists(Predicate sig | not exists(sig.getBody()) and resolveCall(call, sig))
|
||||
not exists(ClasslessPredicate sig | not sig.isSignature() and resolveCall(call, sig))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user