JetBrains / JetBrains/java-annotations

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

オープン
#134 コメント 6 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Kotlin
スター
463
フォーク
72
PR マージ指標
30日以内にマージされた PR はありません

説明

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)`

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。