Hi Jens,
With this proposal I am trying to fix some violations that are a result of how the language developed. Some are rudiments, others – intended decisions for convenience that are no longer relevant. In other words, I am trying to refactor an established grammar.
Everything you pointed out aren't really problems related to what this pitch tackles at the implementation level, so I doubt fixing them together will make a difference. Mostly, they are bugs or simply an early state of a not yet fully implemented feature. A good example are conditional conformances.
By the way, as long as the extension resides in the same module, this should be alright.
You can treat non-conditional extensions like these as part of the primary definition.
struct S {
let v: A
func roo() {foo()}
}
extension S {
typealias A = Int
func foo() {}
}
P.S.
Thanks for the bugs, I'll look if I can help with any of them.