func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P {} extension P { typealias A = B }
これがコンパイル通らないのなんでですかね struct B {} protocol P {} extension P { typealias A = B } func foo<T: P>(a: T) -> T.A { fatalError() }
か func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P { associatedtype A } extension P { typealias A = B }
にすると通るようになるんですが。。 (edited)