I agree with that, I would expect default
to be required in extensions (assuming after Erica's proposal was accepted) and then after the sugar was introduced in the protocol body.
// After Erica's proposal
protocol P {
func foo()
}
extension P {
default func foo() { ... }
func bar() { ... }
}
// After extra sugar
protocol P {
default func foo() { ... }
}
extension P {
func bar() { ... }
}
default
already tells the reader about dynamic / static dispatch.