Avatar
Miwa / Ensan 6/13/2021 9:25 AM
元の挙動がおかしいので直すのも妙だと思いますが、これだと5.4でも警告が出ませんでした。 protocol Ring {} protocol MatrixImpl { associatedtype BaseRing: Ring } struct DefaultMatrixImpl<A: Ring>: MatrixImpl { typealias BaseRing = A } struct Matrix<A, B: MatrixImpl> where B.BaseRing == A { typealias A = A typealias B = B } extension Matrix where Self.B == DefaultMatrixImpl<Self.A> {} (edited)