You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/binary-api.md
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ title: SIP-52 - Binary APIs
15
15
| Feb 27 2023 | Initial Draft |
16
16
| Aug 16 2023 | Single Annotation |
17
17
| Aug 24 2023 | Change Annotation Name |
18
+
| Jan 09 2024 | Change Overload Rules |
18
19
19
20
## Summary
20
21
@@ -73,7 +74,7 @@ This proposal introduces the `@publicInBinary` annotation, and adds a migration
73
74
74
75
#### `@publicInBinary` annotation
75
76
76
-
A binary API is a definition that is annotated with `@publicInBinary` or overrides a definition annotated with `@publicInBinary`.
77
+
A binary API is a definition that is annotated with `@publicInBinary`.
77
78
This annotation can be placed on `def`, `val`, `lazy val`, `var`, `object`, and `given` definitions.
78
79
A binary API will be publicly available in the bytecode.
79
80
@@ -222,6 +223,7 @@ final class publicInBinary extends scala.annotation.StaticAnnotation
222
223
#### `@publicInBinary` annotation
223
224
224
225
* Only valid on `def`, `val`, `lazy val`, `var`, `object`, and `given`.
226
+
* If a definition overrides a `@publicInBinary` definition, it must also be annotated with `@publicInBinary`.
225
227
* TASTy will contain references to non-public definitions that are out of scope but `@publicInBinary`. TASTy already allows those references.
226
228
* The annotated definitions will be public in the generated bytecode. Definitions should be made public as early as possible in the compiler phases, as this can remove the need to create other accessors. It should be done after we check the accessibility of references.
0 commit comments