Protocol func returning Self
The problem is that you’re making a promise that the compiler can’t prove you’ll keep. So you created this promise: Calling copy() will return its own type, fully initialized. But then you implemented copy() this way: func copy() -> Self { return C() } Now I’m a subclass that doesn’t override copy(). And I return … Read more