@@ -146,20 +146,23 @@ The following changes are permitted:
146146- Reordering generic requirements (but not the generic parameters themselves).
147147- Adding a default argument expression to a parameter.
148148- Adding, changing, reordering, or removing property wrappers that either are
149- implementation-detail or belong in a composition leading with an
150- implementation-detail wrapper.
149+ implementation-detail (``@ImplementationDetail ``) or in a composition where
150+ the outermost wrapper is implementation-detail
151+ (``@ImplementationDetail @MyWrapper ``).
151152- Changing or removing a default argument is a `binary-compatible source-breaking change `.
152153- Adding, changing, or removing arguments in the property-wrapper custom attribute
153- of an API-level wrapper or in the custom attributes of API-leading compositions
154- is a `binary-compatible source-breaking change `.
154+ of an API-level wrapper (``@API(argument: 5) ``) or in the custom attributes of compositions
155+ where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5) ``) is a
156+ `binary-compatible source-breaking change `.
155157- Adding or removing the ``@discardableResult `` and ``@warn_unqualified_access ``
156158 attributes.
157159
158160No other changes are permitted; the following are particularly of note:
159161
160162- An ABI-public function may not change its parameters or return type.
161- - An ABI-public function may not in any way change API-level property
162- wrappers or compositions leading with such wrappers.
163+ - An ABI-public function may not, in any way, change API-level property
164+ wrappers (``@API ``) or compositions where the outermost wrapper is
165+ API-level (``@API @MyWrapper ``).
163166- An ABI-public function may not change its generic requirements.
164167- An ABI-public function may not change its external parameter names (labels).
165168- An ABI-public function may not add, remove, or reorder parameters, whether or
@@ -421,13 +424,15 @@ stored subscripts. This means that the following changes are permitted:
421424- Reordering generic requirements (but not the generic parameters themselves).
422425- Adding a default argument expression to an index parameter.
423426- Adding, changing, reordering, or removing property wrappers that either are
424- implementation-detail or belong in a composition leading with an
425- implementation-detail wrapper.
427+ implementation-detail (``@ImplementationDetail ``) or in a composition where
428+ the outermost wrapper is implementation-detail
429+ (``@ImplementationDetail @MyWrapper ``).
426430- Changing or removing a default argument is a `binary-compatible
427431 source-breaking change `.
428432- Adding, changing, or removing arguments in the property-wrapper custom attribute
429- of an API-level wrapper or in the custom attributes of API-leading compositions
430- is a `binary-compatible source-breaking change `.
433+ of an API-level wrapper (``@API(argument: 5) ``) or in the custom attributes of compositions
434+ where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5) ``) is a
435+ `binary-compatible source-breaking change `.
431436
432437Like properties, subscripts can be marked ``@inlinable ``, which makes
433438changing the body of an accessor a `binary-compatible source-breaking change `.
@@ -792,14 +797,16 @@ counterparts with a few small changes:
792797- Reordering generic requirements (but not the generic parameters themselves)
793798 is permitted.
794799- Adding, changing, reordering, or removing property wrappers that either are
795- implementation-detail or belong in a composition leading with an
796- implementation-detail wrapper are permitted.
800+ implementation-detail (``@ImplementationDetail ``) or in a composition where
801+ the outermost wrapper is implementation-detail
802+ (``@ImplementationDetail @MyWrapper ``).
797803- Adding a default argument expression to an index parameter is permitted.
798804- Changing or removing a default argument is a `binary-compatible
799805 source-breaking change `.
800806- Adding, changing, or removing arguments in the property-wrapper custom attribute
801- of an API-level wrapper or in the custom attributes of API-leading compositions
802- is a `binary-compatible source-breaking change `.
807+ of an API-level wrapper (``@API(argument: 5) ``) or in the custom attributes of compositions
808+ where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5) ``) is a
809+ `binary-compatible source-breaking change `.
803810
804811Adding a public setter to an ``open `` subscript is a
805812`binary-compatible source-breaking change `; any existing overrides will not
0 commit comments