All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.annotation.publicInBinary.scala Maven / Gradle / Ivy

The newest version!
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