Skip to content

Commit 4b6d19c

Browse files
committed
docs: Remove obsolete restriction from LibraryEvolution.rst
1 parent b76047a commit 4b6d19c

File tree

1 file changed

+4
-13
lines changed

1 file changed

+4
-13
lines changed

docs/LibraryEvolution.rst

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,7 @@ the following changes are permitted:
365365
an existing property (unless the struct is marked ``@frozen``; see below).
366366
This is effectively the same as modifying the body of a setter.
367367
- Removing any non-ABI-public members, including stored properties.
368-
- Adding a conformance to an ABI-public protocol *that was introduced in the
369-
same release* (see below).
368+
- Adding a conformance to an ABI-public protocol (see below about availability).
370369
- Adding or removing a conformance to a non-ABI-public protocol.
371370
- Adding ``@dynamicCallable`` to the struct.
372371

@@ -382,17 +381,9 @@ target for the library is an error.
382381
It is not safe to add or remove ``mutating`` or ``nonmutating`` from a member
383382
or accessor within a struct.
384383

385-
If a conformance is added to a type in version 1.1 of a library, it's important
386-
that it isn't accessed in version 1.0. This means that it is only safe to add
387-
new conformances to ABI-public protocols when the protocol is introduced, and
388-
not after. If the protocol comes from a separate module, there is no safe way
389-
to conform to it.
390-
391-
.. admonition:: TODO
392-
393-
Coming up with a way to do this, either with availability annotations for
394-
protocol conformances or a way to emit a fallback copy of the conformance
395-
for clients on older library versions to use, is highly desired.
384+
When introducing a new conformance of an existing type to an existing protocol,
385+
it is important to annotate the conformance with availability. This is achieved
386+
by declaring the conformance on an extension and annotating the extension.
396387

397388

398389
Methods and Initializers

0 commit comments

Comments
 (0)