Skip to content

Commit 523bb7c

Browse files
authored
Mark adding/removing PP arguments as ABI-breaking.
1 parent df048e3 commit 523bb7c

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

docs/LibraryEvolution.rst

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ The following changes are permitted:
150150
the outermost wrapper is implementation-detail
151151
(``@ImplementationDetail @MyWrapper``).
152152
- Changing or removing a default argument is a `binary-compatible source-breaking change`.
153-
- Adding, changing, or removing arguments in the property-wrapper custom attribute
154-
of an API-level wrapper (``@API(argument: 5)``) or in the custom attributes of compositions
153+
- Changing arguments in the property-wrapper custom attribute of an API-level wrapper
154+
(``@API(argument: 5)``) or in the custom attributes of compositions
155155
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``) is a
156156
`binary-compatible source-breaking change`.
157157
- Adding or removing the ``@discardableResult`` and ``@warn_unqualified_access``
@@ -163,6 +163,10 @@ No other changes are permitted; the following are particularly of note:
163163
- An ABI-public function may not, in any way, change API-level property
164164
wrappers (``@API``) or compositions where the outermost wrapper is
165165
API-level (``@API @MyWrapper``).
166+
- An ABI-public function may neither add nor remove arguments in the
167+
property-wrapper custom attribute of an API-level wrapper
168+
(``@API(argument: 5)``) or in the custom attributes of compositions
169+
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``).
166170
- An ABI-public function may not change its generic requirements.
167171
- An ABI-public function may not change its external parameter names (labels).
168172
- An ABI-public function may not add, remove, or reorder parameters, whether or
@@ -429,8 +433,8 @@ stored subscripts. This means that the following changes are permitted:
429433
(``@ImplementationDetail @MyWrapper``).
430434
- Changing or removing a default argument is a `binary-compatible
431435
source-breaking change`.
432-
- Adding, changing, or removing arguments in the property-wrapper custom attribute
433-
of an API-level wrapper (``@API(argument: 5)``) or in the custom attributes of compositions
436+
- Changing arguments in the property-wrapper custom attribute of an API-level wrapper
437+
(``@API(argument: 5)``) or in the custom attributes of compositions
434438
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``) is a
435439
`binary-compatible source-breaking change`.
436440

@@ -803,8 +807,8 @@ counterparts with a few small changes:
803807
- Adding a default argument expression to an index parameter is permitted.
804808
- Changing or removing a default argument is a `binary-compatible
805809
source-breaking change`.
806-
- Adding, changing, or removing arguments in the property-wrapper custom attribute
807-
of an API-level wrapper (``@API(argument: 5)``) or in the custom attributes of compositions
810+
- Changing arguments in the property-wrapper custom attribute of an API-level wrapper
811+
(``@API(argument: 5)``) or in the custom attributes of compositions
808812
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``) is a
809813
`binary-compatible source-breaking change`.
810814

0 commit comments

Comments
 (0)