diff --git a/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll b/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll index c619396a13a..6296d255103 100644 --- a/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll +++ b/java/ql/lib/semmle/code/java/deadcode/DeadCode.qll @@ -281,7 +281,12 @@ class RootdefCallable extends Callable { Parameter unusedParameter() { exists(int i | result = this.getParameter(i) | not exists(result.getAnAccess()) and - not overrideAccess(this, i) + not overrideAccess(this, i) and + // Do not report unused parameters on extension parameters that are (companion) objects. + not ( + result.isExtensionParameter() and + (result.getType() instanceof CompanionObject or result.getType() instanceof ClassObject) + ) ) } diff --git a/java/ql/test/kotlin/query-tests/UselessParameter/UselessParameter.expected b/java/ql/test/kotlin/query-tests/UselessParameter/UselessParameter.expected index 1da30394843..72b3348a019 100644 --- a/java/ql/test/kotlin/query-tests/UselessParameter/UselessParameter.expected +++ b/java/ql/test/kotlin/query-tests/UselessParameter/UselessParameter.expected @@ -1,4 +1,2 @@ | Test.kt:11:8:11:18 | a | The parameter 'a' is never used. | | Test.kt:19:5:19:5 | | The parameter '' is never used. | -| Test.kt:20:5:20:15 | | The parameter '' is never used. | -| Test.kt:21:5:21:5 | | The parameter '' is never used. |