Avatar
extension Array { func hoge() -> String { return "Default" } // ① } extension Array where Element == S { func hoge() -> String { return "Subtype" } // ② } extension Array where Element: P { func hoge() -> String { return "Protocol" } // ③ } extension Array where Element == P { func hoge() -> String { return "Existence" } // ④ } [S()].hoge() で②が呼ばれるのって、ここの優先順位が理由ってことで合っていますか? https://github.com/apple/swift/blob/2f6ca48c75cd5482df594496b0be83e7379f2a77/lib/Sema/CSSimplify.cpp#L1830
swift - The Swift Programming Language
5:10 AM
[S()].hoge()swift -frontend -typecheck -debug-constraints に掛けてみると Constraint restrictions: Array<S> to Array<S> is [deep equality] と出ました