[APINotes] Document immortal reference type annotation
API Notes allow annotating a C++ reference type with its retain/release operations. These are honored by the Swift compiler when the type is used from Swift. Apart from names of C++ functions that need to be called to retain/release the object, API Notes also accept a value of `immortal` which indicates that the object is to be considered alive for the duration of the program.
This commit is contained in:
@@ -169,6 +169,20 @@ declaration kind), all of which are optional:
|
||||
to ``SWIFT_RETURNS_INDEPENDENT_VALUE``) or ``computed_property`` (equivalent to
|
||||
``SWIFT_COMPUTED_PROPERTY``).
|
||||
|
||||
::
|
||||
|
||||
Tags:
|
||||
- Name: OwnedStorage
|
||||
SwiftImportAs: owned
|
||||
|
||||
:SwiftRetainOp, SwiftReleaseOp:
|
||||
|
||||
Controls the lifetime operations of a class which uses custom reference
|
||||
counting. The class must be annotated as a reference type using
|
||||
``SwiftImportAs: reference``. The values are either names of global functions,
|
||||
each taking a single parameter of a pointer type, or ``immortal`` for a type
|
||||
that is considered alive for the duration of the program.
|
||||
|
||||
::
|
||||
|
||||
Tags:
|
||||
@@ -176,6 +190,10 @@ declaration kind), all of which are optional:
|
||||
SwiftImportAs: reference
|
||||
SwiftReleaseOp: RCRelease
|
||||
SwiftRetainOp: RCRetain
|
||||
- Name: ImmortalSingleton
|
||||
SwiftImportAs: reference
|
||||
SwiftReleaseOp: immortal
|
||||
SwiftRetainOp: immortal
|
||||
|
||||
:SwiftCopyable:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user