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

**URL:** <https://forums.swift.org/t/accepted-se-0293-extend-property-wrappers-to-function-and-closure-parameters/47030>\
**Category:** Announcements\
**Created:** [March 30, 2021, 5:32pm UTC](https://forums.swift.org/t/accepted-se-0293-extend-property-wrappers-to-function-and-closure-parameters/47030 "2021-03-30T17:32:30Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![anon9791410](https://avatars.discourse-cdn.com/v4/letter/a/9fc348/32.png) [@anon9791410](https://forums.swift.org/u/anon9791410)\
**Post date:** [May 22, 2023, 4:39am UTC](https://forums.swift.org/t/accepted-se-0293-extend-property-wrappers-to-function-and-closure-parameters/47030/8 "2023-05-22T04:39:21Z")

</div>

[Thinking about `@autoclosure` being a wrapper…](https://forums.swift.org/t/pitch-explicit-marker-for-autoclosure-parameters/65092/37)

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

```swift
@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) { }

```

```swift
+() // compiles
+($-something?)

```

I think, [if functions with wrapped parameters that omit argument labels could be referenced, as proposed](https://github.com/apple/swift/issues/66046), we would be able to at least use that overload as a closure?

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

```

---

_[View the full topic](https://forums.swift.org/t/accepted-se-0293-extend-property-wrappers-to-function-and-closure-parameters/47030)._
