A binary API is a definition that is annotated with@publicInBinary. This annotation can be placed ondef,val,lazy val,var, class constructors,object, andgiven 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 onprivate/private[this] definitions.
@publicInBinary can be used to guarantee access toprivate[T]/protected definitions:
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).