The point is that you can use $storage already and it will be the delegate type. In the current pitch storageValue is something entirely new and it shadows the whole property delegate type. Assuming storageValue is of type Value, and that it has one member foo. $storage.storageValue.foo and $storage.storageValue would be valid Swift. However the presence of storageValue and its behavior makes the latter invalid as $storage itself is now seen as Value. The idea there is to allow $storage.foo without the need of an intermediate call to storageValue but that is too magical and exactly what key-path member lookup would already provide in a statically safe way.
1 Like