Skip to content

Commit 4f69c2b

Browse files
[docs] Describe how _alwaysEmitIntoClient relates to library evolution.
1 parent d6c9bd3 commit 4f69c2b

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

docs/LibraryEvolution.rst

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,16 @@ Always Emit Into Client
269269
A function, computed property or subscript annotated as ``@_alwaysEmitIntoClient``
270270
is similar to an ``@inlinable`` declaration, except the declaration is
271271
not part of the module's ABI, meaning that the client must always emit
272-
their own copy.
272+
their own copy. As a result:
273273

274-
As a result, removing a declaration annotated as ``@_alwaysEmitIntoClient``
275-
is a binary-compatible source-breaking change.
276-
277-
.. admonition:: TODO
278-
279-
The implementation of ``@_alwaysEmitIntoClient`` is incomplete and
280-
should probably graduate to having its own evolution proposal.
274+
- Removing a declaration annotated as ``@_alwaysEmitIntoClient`` is a
275+
`binary-compatible source-breaking change`.
276+
- Adding ``@_alwaysEmitIntoClient`` to a declaration breaks ABI but is a
277+
source-compatible change.
278+
- Removing ``@_alwaysEmitIntoClient`` from a declaration is a
279+
binary-compatible change. It also requires updating the availability
280+
to at least the OS version where the attribute was removed. As a result,
281+
it may be a source-breaking change.
281282

282283
Default Argument Expressions
283284
----------------------------

0 commit comments

Comments
 (0)