JetBrains / JetBrains/java-annotations

Deprecate and hide @Nullable, @NonNull annotations to avoid name clashes with jspecify

Aperta
#134 6 commenti 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Kotlin
Stelle
463
Fork
72
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Currently, `org.jetbrains.kotlin:kotlin-stdlib:2.2.21` depends on `org.jetbrains:annotations`, so it brings `org.jetbrains.annotations.Nullable` to IDE autocomplete.

The ecosystem moves towards https://jspecify.dev/, so it would be nice if you could deprecate and hide `@Nullable` and `@NonNull` annotations.

Deprecation is straightforward: `@Deprecated` + release announcement.
Hiding would probably involve adding `ACC_SYNTHETIC` modifier after the compilation. It would still keep the class in the bytecode, so the old libraries would still work fine in the runtime, while the new clients would need to move to a different nullability annotations.
An alternative option could be to rewrite `@Nullable` annotation in Kotlin and use `@Deprecated(level = HIDDEN)`

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.