Skip to content

Commit 9553180

Browse files
committed
Fix incorrect MemberRefExpr::getQualifier() usage
`MemberRefExpr::getQualifier()` actually obtains the qualifier of the synthetic anonymous class creation representing the method reference expression, and therefore does not have the desired (or any) result.
1 parent 5f5f091 commit 9553180

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

codeql-custom-queries-java/queries/lib/Expressions.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class CallableReferencingExpr extends Expr {
153153
Expr getQualifier() {
154154
result = [
155155
this.(MethodAccess).getQualifier(),
156-
this.(MemberRefExpr).getQualifier(),
156+
this.(MemberRefExpr).getReceiverExpr(),
157157
this.(ClassInstanceExpr).getQualifier(),
158158
]
159159
}

codeql-custom-queries-java/queries/recommendations/catch-clause-logging-and-throwing-exception.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ private predicate referencesVariable(Expr expr, Variable var) {
579579
(
580580
m = expr.(MethodAccess).getMethod() and referencesVariable(expr.(MethodAccess).getQualifier(), var)
581581
or m = expr.(FieldAccess).getField() and referencesVariable(expr.(FieldAccess).getQualifier(), var)
582-
or m = expr.(MemberRefExpr).getReferencedCallable() and referencesVariable(expr.(MemberRefExpr).getQualifier(), var)
582+
or m = expr.(MemberRefExpr).getReferencedCallable() and referencesVariable(expr.(MemberRefExpr).getReceiverExpr(), var)
583583
)
584584
// Ignore if instance is used for static member access (which itself is bad code style)
585585
and not m.isStatic()

0 commit comments

Comments
 (0)