[Accepted] SE-0293: Extend Property Wrappers to Function and Closure Parameters

Thinking about @autoclosure being a wrapper…

It is impossible to use projected ("API-level") arguments with operators, correct? (Operators are not mentioned in the proposal.)

@propertyWrapper public struct Get<Value> {
  public var wrappedValue: Value { projectedValue() }
  public var projectedValue: () -> Value

  public init(wrappedValue: @autoclosure @escaping () -> Value) {
    projectedValue = wrappedValue
  }

  public init(projectedValue: @escaping () -> Value) {
    self.projectedValue = projectedValue
  }
}

prefix func +(@Get _: Void) { }
+() // compiles
+($-something?)

I think, if functions with wrapped parameters that omit argument labels could be referenced, as proposed, we would be able to at least use that overload as a closure?

((+) as (() -> Void) -> Void) { }
(+) { }
(&&)(true) { false }