Skip to content

Commit 88c4786

Browse files
committed
unified: Fix bad join
1 parent 388acff commit 88c4786

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

‎unified/ql/lib/codeql/unified/internal/dataflow/CallGraph.qll‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,19 @@ DataFlowCallable viableCallable(DataFlowCall c) {
1414
result.asSummarizedCallable().matchesCall(c.asExplicitCall())
1515
}
1616

17+
bindingset[access]
18+
pragma[inline_late]
19+
private N::NamespaceNode resolveBase(MemberAccessExpr access) {
20+
result.isInstanceMemberNamespace(T::inferType(access.getBase()).asClass())
21+
}
22+
1723
private AccessorDeclaration resolveAccessor(Expr access) {
1824
result.getNameNode() = N::getStaticBindingTargetFromRef(access)
1925
or
2026
not exists(N::getStaticBindingTargetFromRef(access)) and
21-
exists(MemberAccessExpr m, N::NamespaceNode namespace |
27+
exists(MemberAccessExpr m |
2228
access = m and
2329
// TODO: Make type inference own accessor-resolution. It also needs it internally.
24-
namespace.isInstanceMemberNamespace(T::inferType(m.getBase()).asClass()) and
25-
namespace.getMember(m.getMemberName()).isMember(result)
30+
resolveBase(m).getMember(m.getMemberName()).isMember(result)
2631
)
2732
}

0 commit comments

Comments
 (0)