Avatar
@swift-5.5.3 -warn-concurrency @dynamicMemberLookup struct Box<Value> { var value: Value subscript<T>(dynamicMember keyPath: WritableKeyPath<Value, T>) -> T { get { value[keyPath: keyPath] } set { value[keyPath: keyPath] = newValue } } } struct Foo { var count: Int = 0 } let boxed = Box(value: Foo()) print(boxed.count) let boxedBoxed = Box(value: boxed) print(boxedBoxed.count) print(boxedBoxed[dynamicMember: \.[dynamicMember: \Foo.count]]) (edited)