Avatar
@swift-5.0.3 protocol P { mutating func foo() } extension P { mutating func foo() { print("P") } } struct S: P { func foo() { print("S") } } let s: S = S() s.foo() // ↓エラー // let p: P = s // p.foo() var p: P = s p.foo()