Add recipe to remove unused constructor and method parameters#560
Add recipe to remove unused constructor and method parameters#560iddeepak wants to merge 44 commits intoopenrewrite:mainfrom
Conversation
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
|
This one done: Do we cover |
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Show resolved
Hide resolved
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Show resolved
Hide resolved
RemoveUnusedParams only handles unused parameters. Unused assignments would need their own recipe |
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Pankraz76
left a comment
There was a problem hiding this comment.
try avoid feature envy (& DRY) giving single point of truth (SPOT)
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
Pankraz76
left a comment
There was a problem hiding this comment.
new test case - cover constructor as well.
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Outdated
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Outdated
Show resolved
Hide resolved
Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments Updated review comments
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Pankraz76
left a comment
There was a problem hiding this comment.
last polish.
Done very well, could already merge.
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Show resolved
Hide resolved
src/test/java/org/openrewrite/staticanalysis/RemoveUnusedParamsTest.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
|
Hey @timtebeek, thanks for flagging those edge cases—avoidDirectConflict, avoidInheritedConflict, and cascadeRemoveUnusedArguments. I’ll revisit the pruning logic with those in mind. In the meantime, if you have any suggestions on how to handle them, Let me know your thoughts! |
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
|
you are really talented, keep pushing @iddeepak. |
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
src/main/java/org/openrewrite/staticanalysis/RemoveUnusedParams.java
Outdated
Show resolved
Hide resolved
…s.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
This PR is stale because it has been open for 90 days with no activity. Remove |
|
This PR is stale because it has been open for 90 days with no activity. Remove |
What’s changed?
I’ve added a new recipe class, RemoveUnusedParams, that automatically removes parameters from Java methods when they’re declared but never referenced in the method body. It still respects:
@Deprecated)Alongside the main recipe, I’ve expanded the unit tests to cover:
What’s your motivation?
Over time, code tends to accumulate unused parameters—leftovers from refactoring, changing requirements, or evolving APIs. They add noise, make signatures harder to read, and can confuse future maintainers. This recipe:
Anything in particular you'd like reviewers to focus on?
JavaIsoVisitorpass—does it still scale on large projects?Anyone you would like to review specifically?
Have you considered any alternatives or workarounds?
MethodMatcheror type-based override detection; this felt like overkill for a simple annotation check.Any additional context
mvn test.Checklist