publicInBinary

scala.annotation.publicInBinary
final class publicInBinary extends StaticAnnotation

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).

Attributes

Experimental
true
Source
publicInBinary.scala
Graph
Supertypes
class Annotation
class Object
trait Matchable
class Any
In this article