Open noti0na1 opened 6 days ago
There is already some support for this (or was it disabled at some point?). See NotNullAnnots
in Definitions.scala
and uses of that. def hasNotNullAnnot
in JavaNullInterop
.
Oh, sorry, I misunderstood.
Not sure about the current status of Java ecosystem. I guess jspecify
is the latest standard for this kind of annotations?
Perhaps this could be a good introductory task for @HarrisL2
This is a list of annotations considered by Kotlin: https://github.com/JetBrains/kotlin/blob/a9ff22693479cabd201909a06e6764c00eddbf7b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.kt
We should update our existing list as well.
The
@NotNull
and@NonNullable
type annotations are currently used by explicit nulls to not nullify (or add flexible type to) a reference type from Java signatures.In addition to these annotations, I suggest we also consider the
@Nullable
annotation. It indicates a value can indeed be null. In this case, we will always nullify the type (adding| Null
), instead of adding a flexible type.A list of
@Nullable
annotations we may want to consider: