Skip to content

Commit 6a600de

Browse files
committed
Note that @_alwaysEmitIntoClient was formalized as @export(implementation)
1 parent c1c05e1 commit 6a600de

File tree

1 file changed

+1
-13
lines changed

1 file changed

+1
-13
lines changed

docs/ReferenceGuides/UnderscoredAttributes.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,7 @@ Forces conformances of the attributed protocol to always have their Type Metadat
2929

3030
## `@_alwaysEmitIntoClient`
3131

32-
Forces the body of a function to be emitted into client code.
33-
34-
Note that this is distinct from `@inline(__always)`; it doesn't force inlining
35-
at call-sites, it only means that the implementation is compiled into the
36-
module which uses the code.
37-
38-
This means that `@_alwaysEmitIntoClient` definitions are _not_ part of the
39-
defining module's ABI, so changing the implementation at a later stage
40-
does not break ABI.
41-
42-
Most notably, default argument expressions are implicitly
43-
`@_alwaysEmitIntoClient`, which means that adding a default argument to a
44-
function which did not have one previously does not break ABI.
32+
Forces the body of a function to be emitted into client code. This underscored attribute was formalized as `@export(implementation)` as part of [SE-0497](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0497-definition-visibility.md).
4533

4634
## `@_assemblyVision`
4735

0 commit comments

Comments
 (0)