mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[SE-0258] Promote projection variables ($foo) to the original property access
When the outermost property wrapper associated with a property has a `wrapperValue`, create the projection property (with the `$` prefix) at the same access level as the original property. This puts the wrapped-value interface and the projection interface at the same level. The newly-introduced @_projectionValueProperty attribute is implicitly created to establish the link between the original property and the projection value within module interfaces, where both properties will be explicitly written out.
This commit is contained in:
@@ -52,7 +52,7 @@ const uint16_t SWIFTMODULE_VERSION_MAJOR = 0;
|
||||
/// describe what change you made. The content of this comment isn't important;
|
||||
/// it just ensures a conflict if two people change the module format.
|
||||
/// Don't worry about adhering to the 80-column limit for this line.
|
||||
const uint16_t SWIFTMODULE_VERSION_MINOR = 497; // remove FuncDecl::hasDynamicSelf()
|
||||
const uint16_t SWIFTMODULE_VERSION_MINOR = 498; // projection value attr
|
||||
|
||||
using DeclIDField = BCFixed<31>;
|
||||
|
||||
@@ -1576,6 +1576,11 @@ namespace decls_block {
|
||||
using ClangImporterSynthesizedTypeDeclAttrLayout
|
||||
= BCRecordLayout<ClangImporterSynthesizedType_DECL_ATTR>;
|
||||
using PrivateImportDeclAttrLayout = BCRecordLayout<PrivateImport_DECL_ATTR>;
|
||||
using ProjectionValuePropertyDeclAttrLayout = BCRecordLayout<
|
||||
ProjectionValueProperty_DECL_ATTR,
|
||||
BCFixed<1>, // isImplicit
|
||||
IdentifierIDField // name
|
||||
>;
|
||||
|
||||
using InlineDeclAttrLayout = BCRecordLayout<
|
||||
Inline_DECL_ATTR,
|
||||
|
||||
Reference in New Issue
Block a user