Add rewrite support for errorprone.refasterrules
I propose integrating Google Error Prone (https://github.com/google/error-prone) with its Picnic extension (demo: https://www.youtube.com/watch?v=6llnrUtVlrE) to enable automated fixes via rewrite rules.
This would complement Checkstyle by addressing semantic bugs rather than just stylistic issues.
Motivation
Error Prone’s refaster/rewrite rules can:
- Fix common bug patterns (e.g.,
String.equals() misuse)
- Modernize code (e.g., JDK migration helpers)
- Enforce best practices (e.g., null-checks)
Adoption examples:
Proposal
- Support
errorprone.refasterrules rewrites
- Keep adoption opt-in (no breaking changes)
- Provide suppression mechanisms for API constraints
Open Questions
- Scope of auto-fixes
- Suppression strategy
- Integration approach
Next Steps
I can:
- Prepare a PoC
- Help with implementation design
- Address compatibility concerns
Add
rewritesupport forerrorprone.refasterrulesI propose integrating Google Error Prone (https://github.com/google/error-prone) with its Picnic extension (demo: https://www.youtube.com/watch?v=6llnrUtVlrE) to enable automated fixes via
rewriterules.This would complement Checkstyle by addressing semantic bugs rather than just stylistic issues.
Motivation
Error Prone’s
refaster/rewriterules can:String.equals()misuse)Adoption examples:
tech.picnic.errorprone.refasterrulesdiffplug/spotless#2641StreamRulesRecipesapache/maven#11159StreamRulesRecipesapache/maven-parent#496rewritesupport forerrorprone.refasterrulescheckstyle/checkstyle#17487rewritesupport forerrorprone.refasterrulesapache/kafka#20219rewritesupport forerrorprone.refasterrulesdiffplug/spotless#2576Proposal
errorprone.refasterrulesrewritesOpen Questions
Next Steps
I can: