JetBrains / JetBrains/java-annotations

VisibleForTesting behaviour is undefined for Kotlin code

Open
#97 0 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.