Hi Nevin,
Writing C().id
was a typo, and I was surprised by the result when it actually worked.
If one adds a print(type(of: self))
into the Q.id
implementation, it prints "Q”. At least that part makes sense.
This feels to me like it relates to the strange class-related behavior you discussed at Need Help Understanding Protocols and Generics - #20 by Nevin.
I’d love to trace through how the compiler is analyzing this one. Unfortunately, I’m not currently setup to debug the compiler, and the overhead in getting setup is no fun.
--Matt