@@ -145,14 +145,22 @@ The following changes are permitted:
145145 body, not the labels that are part of the function's full name).
146146- Reordering generic requirements (but not the generic parameters themselves).
147147- Adding a default argument expression to a parameter.
148- - Changing or removing a default argument is a `binary-compatible
149- source-breaking change `.
148+ - Adding, changing, reordering, or removing property wrappers that either are
149+ implementation-detail or in a composition where the outermost wrapper is
150+ implementation-detail.
151+ - Changing or removing a default argument is a `binary-compatible source-breaking change `.
150152- Adding or removing the ``@discardableResult `` and ``@warn_unqualified_access ``
151153 attributes.
152154
153155No other changes are permitted; the following are particularly of note:
154156
155157- An ABI-public function may not change its parameters or return type.
158+ - An ABI-public function may not, in any way, change API-level property
159+ wrappers or compositions where the outermost wrapper is
160+ API-level.
161+ - An ABI-public function may not change an API-level property-wrapper attribute
162+ to an implementation-detail one and vice versa, if it is the only wrapper
163+ applied to a given parameter or the outermost wrapper in a composition.
156164- An ABI-public function may not change its generic requirements.
157165- An ABI-public function may not change its external parameter names (labels).
158166- An ABI-public function may not add, remove, or reorder parameters, whether or
@@ -413,6 +421,9 @@ stored subscripts. This means that the following changes are permitted:
413421 accessor bodies, not the labels that are part of the subscript's full name).
414422- Reordering generic requirements (but not the generic parameters themselves).
415423- Adding a default argument expression to an index parameter.
424+ - Adding, changing, reordering, or removing property wrappers that either are
425+ implementation-detail or in a composition where the outermost wrapper is
426+ implementation-detail.
416427- Changing or removing a default argument is a `binary-compatible
417428 source-breaking change `.
418429
@@ -778,6 +789,9 @@ counterparts with a few small changes:
778789- Changing index parameter internal names is permitted.
779790- Reordering generic requirements (but not the generic parameters themselves)
780791 is permitted.
792+ - Adding, changing, reordering, or removing property wrappers that either are
793+ implementation-detail or in a composition where the outermost wrapper is
794+ implementation-detail.
781795- Adding a default argument expression to an index parameter is permitted.
782796- Changing or removing a default argument is a `binary-compatible
783797 source-breaking change `.
0 commit comments