ktlint broken in 8.4.0 — FeatureClassLoader missing Kotlin stdlib
- Dominant language
- Java
- Stars
- 5.6k
- Forks
- 559
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 34
Description
## Bug
After upgrading from 8.3.0 to 8.4.0, `spotlessKotlinCheck` fails for all Kotlin files. ktlint cannot initialize because Spotless' `FeatureClassLoader` fails to load a core Kotlin stdlib class.
Root cause from the lint output:
```
Caused by: java.lang.ClassNotFoundException: kotlin.collections.ArraysKt___ArraysJvmKt
at com.diffplug.spotless.FeatureClassLoader.findClass(FeatureClassLoader.java:79)
...
at com.diffplug.spotless.glue.ktlint.compat.KtLintCompat1Dot0Dot0Adapter.(KtLintCompat1Dot0Dot0Adapter.java:68)
```
This happens both with `ktlint("1.8.0")` and `ktlint()` (default). Reverting to 8.3.0 fixes it.
## Environment
- Spotless: 8.4.0 (8.3.0 works)
- Kotlin: 2.3.20
- Gradle: 9.4.1
- JDK: 21
## Notes
The 8.4.0 changelog shows no ktlint changes. The predeclared dependencies fix might have affected how ktlint's classpath is assembled in `FeatureClassLoader`.
Contributor guide
Assessment
This issue has not been assessed yet.