where 付き extensionで associatedtype を上書きですかー。(edited)
11:46 AM
@swiftbot --version=2018-05-29-a,4.1.1 struct A { } struct B { } protocol P { associatedtype Assoc = A } struct S<T>: P { } extension S where T == Int { typealias Assoc = B } print(S<String>.Assoc())(edited)