scala.annotation.publicInBinary.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala3-library_sjs1_3 Show documentation
Show all versions of scala3-library_sjs1_3 Show documentation
scala3-library-bootstrappedJS
package scala.annotation
/** A binary API is a definition that is annotated with `@publicInBinary`.
* This annotation can be placed on `def`, `val`, `lazy val`, `var`, class constructors, `object`, and `given` definitions.
* A binary API will be publicly available in the bytecode. Tools like TASTy MiMa will take this into account to check
* compatibility.
*
* This annotation cannot be used on `private`/`private[this]` definitions.
*
* `@publicInBinary` can be used to guarantee access to `private[T]`/`protected` definitions:
* - within inline definitions,
* - against previous binary where this definitions was public or less private,
* - or through JVM reflection.
*
* Removing this annotation from a non-public definition is a binary incompatible change.
* Adding this annotation to a non-public definition can also cause binary incompatibilities
* if the definition is accessed in an inline definition (these can be checked using `-WunstableInlineAccessors`).
*/
@experimental
final class publicInBinary extends scala.annotation.StaticAnnotation
© 2015 - 2024 Weber Informatics LLC | Privacy Policy