Skip to content

Commit be7d761

Browse files
authored
Show that PP arguments change API significance.
1 parent e560ded commit be7d761

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

docs/LibraryEvolution.rst

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,11 @@ 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-
- Changing arguments in the property-wrapper custom attribute of an API-level wrapper
154-
(``@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`.
153+
- Changing arguments in the property-wrapper custom attribute of an
154+
implementation-detail wrapper (``@ImplementationDetail(argument: 5)``) or
155+
in the custom attributes of compositions where the outermost wrapper is
156+
implementation-detail (``@ImplementationDetail @MyWrapper(argument: 5)``)
157+
is a `binary-compatible source-breaking change`.
157158
- Adding or removing the ``@discardableResult`` and ``@warn_unqualified_access``
158159
attributes.
159160

@@ -164,9 +165,10 @@ No other changes are permitted; the following are particularly of note:
164165
wrappers (``@API``) or compositions where the outermost wrapper is
165166
API-level (``@API @MyWrapper``).
166167
- An ABI-public function may neither add nor remove arguments from 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)``).
168+
property-wrapper custom attribute of a wrapper supporting projected-value
169+
initialization (``@ValueProjecting(argument: 5)``) or in the custom
170+
attributes of compositions where the outermost wrapper is projected-value
171+
initializable (``@ValueProjecting @MyWrapper(argument: 5)``).
170172
- An ABI-public function may not change its generic requirements.
171173
- An ABI-public function may not change its external parameter names (labels).
172174
- An ABI-public function may not add, remove, or reorder parameters, whether or
@@ -433,10 +435,11 @@ stored subscripts. This means that the following changes are permitted:
433435
(``@ImplementationDetail @MyWrapper``).
434436
- Changing or removing a default argument is a `binary-compatible
435437
source-breaking change`.
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
438-
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``) is a
439-
`binary-compatible source-breaking change`.
438+
- Changing arguments in the property-wrapper custom attribute of an
439+
implementation-detail wrapper (``@ImplementationDetail(argument: 5)``) or
440+
in the custom attributes of compositions where the outermost wrapper is
441+
implementation-detail (``@ImplementationDetail @MyWrapper(argument: 5)``)
442+
is a `binary-compatible source-breaking change`.
440443

441444
Like properties, subscripts can be marked ``@inlinable``, which makes
442445
changing the body of an accessor a `binary-compatible source-breaking change`.
@@ -807,10 +810,11 @@ counterparts with a few small changes:
807810
- Adding a default argument expression to an index parameter is permitted.
808811
- Changing or removing a default argument is a `binary-compatible
809812
source-breaking change`.
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
812-
where the outermost wrapper is API-level (``@API @MyWrapper(argument: 5)``) is a
813-
`binary-compatible source-breaking change`.
813+
- Changing arguments in the property-wrapper custom attribute of an
814+
implementation-detail wrapper (``@ImplementationDetail(argument: 5)``) or
815+
in the custom attributes of compositions where the outermost wrapper is
816+
implementation-detail (``@ImplementationDetail @MyWrapper(argument: 5)``)
817+
is a `binary-compatible source-breaking change`.
814818

815819
Adding a public setter to an ``open`` subscript is a
816820
`binary-compatible source-breaking change`; any existing overrides will not

0 commit comments

Comments
 (0)