openrewrite / openrewrite/rewrite-static-analysis
Convert Raw Types to Generics in private methods
Open
Nobody has claimed this yet.
recipe
- Dominant language
- Java
- Stars
- 62
- Forks
- 112
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 40
Description
Considering the following
private Set<Integer> elements = Set.of(1,2,3);
private boolean containsNumber(int number, Set elements) {
return elements.contains(number);
}
In this case, containsNumber is private and only a set of Integers is passed. It would be better to do this instead :
private Set<Integer> elements = Set.of(1,2,3);
private boolean containsNumber(int number, Set<Integer> elements) {
return elements.contains(number);
}
Similar spec : https://rules.sonarsource.com/java/RSPEC-3740
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Java recipe or analysis entry point for raw types and compare its behavior with Sonar rule RSPEC-3740. Verify how private methods are handled and add coverage for a raw Set parameter that can be parameterized; done means the issue is detected and the suggested or applied change uses the concrete generic type.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100