@@ -145,14 +145,22 @@ The following changes are permitted:
145
145
body, not the labels that are part of the function's full name).
146
146
- Reordering generic requirements (but not the generic parameters themselves).
147
147
- 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 `.
150
152
- Adding or removing the ``@discardableResult `` and ``@warn_unqualified_access ``
151
153
attributes.
152
154
153
155
No other changes are permitted; the following are particularly of note:
154
156
155
157
- 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.
156
164
- An ABI-public function may not change its generic requirements.
157
165
- An ABI-public function may not change its external parameter names (labels).
158
166
- 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:
413
421
accessor bodies, not the labels that are part of the subscript's full name).
414
422
- Reordering generic requirements (but not the generic parameters themselves).
415
423
- 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.
416
427
- Changing or removing a default argument is a `binary-compatible
417
428
source-breaking change `.
418
429
@@ -778,6 +789,9 @@ counterparts with a few small changes:
778
789
- Changing index parameter internal names is permitted.
779
790
- Reordering generic requirements (but not the generic parameters themselves)
780
791
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.
781
795
- Adding a default argument expression to an index parameter is permitted.
782
796
- Changing or removing a default argument is a `binary-compatible
783
797
source-breaking change `.
0 commit comments