Skip to content

Property wrapper on local variable cannot be used with its projected value in ExprPattern #66561

Closed
@hamishknight

Description

@hamishknight

This fails to compile:

@propertyWrapper
struct WrapperValue<Value> {
  var value: Value
  init(wrappedValue: Value) {
    self.value = wrappedValue
  }

  var projectedValue: Self {
    return self
  }

  var wrappedValue: Value {
    get {
      self.value
    }
    set {
      self.value = newValue
    }
  }
}

func test() {
  let _ = {
    @WrapperValue var value: Bool = false
    switch value {
    case $value.wrappedValue:
      break
    default:
      break
    }
  }
}

But ought to.

rdar://110649179

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.patternsFeature: patternstype checkerArea → compiler: Semantic analysis

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions