JetBrains / JetBrains/java-annotations
VisibleForTesting behaviour is undefined for Kotlin code
- Dominant language
- Kotlin
- Stars
- 463
- Forks
- 72
- PR merge metrics
- No merged PRs in 30d
Description
The documentation for the `VisibleForTesting` documentation is unclear on what the intended behaviour should be for Kotlin code.
The documentation leads you to believe that a Kotlin public member annotated with `@VisibleForTesting` should otherwise be considered package-private; however, Kotlin has no package-private visibility, and the one-less-than-public visibility to apply is [`internal`](https://kotlinlang.org/docs/visibility-modifiers.html).
This makes the annotation useless in Kotlin code, because if it is enforced, it means you can't use annotated symbols in the `internal` scope, but you can use them in the narrower but inexistent package-private scope.
Contributor guide
Assessment
This issue has not been assessed yet.