Java 25 Language Features Support for Checkstyle
| Student | Vivek Singh Solanki |
| Organisation | Checkstyle |
| Mentors | Roman Ivanov · Mohamed Mahfouz · Stoyan Kostadinov |
| Project board | checkstyle/projects/15 |
Java 25 (LTS) finalised language features that Checkstyle could not handle: compact source files
(JEP 512) crashed the parser, module import declarations
(JEP 511) were ignored by most checks, and the build failed with 100+
test errors on JDK 25. On top of that, module-info.java had never been parseable: the single
most requested parsing gap in the project, open since 2020.
Over the summer this project delivered, across checkstyle/checkstyle and its tooling repos:
- 🌳 Grammar support for JEP 512 compact source files and for
module-info.java(all JLS 7.7 directives) - 🔍 Three published feature audits covering every check against the new syntax (JEP 511, JEP 512, modules)
- 🐛 Fixes for every crash and false positive the audits found, plus false-negative fixes and new-token support
- ✅ A CI-enforced coverage test that turns the remaining compact-source work into a machine-verified to-do list
- 🧩 Two new checks,
ModuleImportOrderandModuleDirectiveOrder, plus three more approved proposals - ⚙️ Green build and CI on JDK 25
53 pull requests raised · 48 merged · 64 issues opened
The full story (what was built, how the scope evolved, and every PR with its status) is in the final report.
├── index.html landing page
└── 2026/
├── index.html the GSoC 2026 final report
├── style.css
└── script.js
Plain HTML/CSS/JS, no build step, no external dependencies, served with GitHub Pages.