[Pitch] Allow Property Wrappers on Let Declarations

Thank you for this feedback. The let wrapped properties transformation has some resemblance to what you've described for Clampped. I will update the pitch to make this clearer as well.

For UnitRectangle with let wrapped height and width, the transformation with the current implementation is:

internal struct UnitRectangle {
  @SmallNumber internal let height: Int {
    get {
      return self._height.wrappedValue
    }
  }
  private let _height: SmallNumber = SmallNumber(wrappedValue: 1)
  @SmallNumber internal let width: Int {
    get {
      return self._width.wrappedValue
    }
  }
  private let _width: SmallNumber = SmallNumber(wrappedValue: 1)
  internal init() {}
}

where 1 is assigned via SmallNumber's wrappedValue init:

_height = SmallNumber(wrappedValue: 1)
_width = SmallNumber(wrappedValue: 1)
1 Like