You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ReferenceGuides/UnderscoredAttributes.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -830,10 +830,20 @@ the compiler.
830
830
831
831
This `async` function uses the pre-SE-0338 semantics of unsafely inheriting the caller's executor. This is an underscored feature because the right way of inheriting an executor is to pass in the required executor and switch to it. Unfortunately, there are functions in the standard library which need to inherit their caller's executor but cannot change their ABI because they were not defined as `@_alwaysEmitIntoClient` in the initial release.
832
832
833
+
833
834
## `@_spi_available(platform, version)`
834
835
835
836
Like `@available`, this attribute indicates a decl is available only as an SPI.
836
837
This implies several behavioral changes comparing to regular `@available`:
837
838
1. Type checker diagnoses when a client accidently exposes such a symbol in library APIs.
838
839
2. When emitting public interfaces, `@_spi_available` is printed as `@available(platform, unavailable)`.
839
840
3. ClangImporter imports ObjC macros `SPI_AVAILABLE` and `__SPI_AVAILABLE` to this attribute.
841
+
842
+
843
+
## `_local`
844
+
845
+
A distributed actor can be marked as "known to be local" which allows avoiding
846
+
the distributed actor isolation checks. This is used for things like `whenLocal`
847
+
where the actor passed to the closure is known-to-be-local, and similarly a
848
+
`self` of obtained from an _isolated_ function inside a distributed actor is
0 commit comments