// RUN: %target-typecheck-verify-swift | |
protocol ProtoA { | |
associatedtype AType1 | |
} | |
protocol ProtoB { | |
associatedtype AType2: ProtoA | |
func protoFunc() -> AType2.AType1 | |
} | |
extension ProtoB { | |
typealias Alias = AType2.AType1 | |
} | |
struct Concrete<AType2: ProtoA>: ProtoB { | |
func concreteFunc() -> Alias { | |
fatalError() | |
} | |
func protoFunc() -> Alias { // expected-error{{unsupported recursion for reference to type alias 'Alias' of type 'Concrete<AType2>'}} | |
fatalError() | |
} | |
} |