public struct OtherWrapper { var value: T } @propertyWrapper public struct SomeWrapper { public var wrappedValue: T public init(wrappedValue initialValue: T) { self.wrappedValue = initialValue } public var projectedValue: OtherWrapper { OtherWrapper(value: wrappedValue) } } public struct HasWrappers { @SomeWrapper public var x: Int = 17 } // https://github.com/apple/swift/issues/53234 @propertyWrapper class A { private var _value: T var wrappedValue: T { get { _value } set { _value = newValue } } init(wrappedValue initialValue: T) { _value = initialValue } } @propertyWrapper class B: A { override var wrappedValue: Double { get { super.wrappedValue } set { super.wrappedValue = newValue } } } class Holder { // @A var b = 10.0 // ok @B var b = 10.0 // crash in test target }