// RUN: %target-typecheck-verify-swift @propertyWrapper @dynamicMemberLookup struct Binding { var wrappedValue: Value init(get: @escaping () -> Value, set: @escaping (Value) -> Void) { self.wrappedValue = get() } subscript(dynamicMember keyPath: WritableKeyPath) -> Binding { get { fatalError() } } } class S { var value: String = "" var buffer: String? = nil var body: String { let binding = Binding( get: { self.buffer ?? self.value }, set: { self.buffer = $0 } ) return binding.wrappedValue } }