// RUN: %target-swift-frontend -emit-ir %s public protocol HorseSaddle {} public enum EnglishSaddle : HorseSaddle {} public enum WesternSaddle : HorseSaddle {} public protocol Horse { associatedtype Body : Horse associatedtype Saddle: HorseSaddle var body: Body { get } } extension Horse { typealias Saddle = Body.Saddle } public struct DraftHorse : Pony { public typealias Saddle = EnglishSaddle public typealias Body = Never var contents: T } // MARK: - Implementation detail extension Never : Horse { public typealias Saddle = EnglishSaddle public typealias Body = Never public var body: Never { switch self {} } } protocol Pony : Horse where Body == Never {} extension Pony { public var body: Never { fatalError() } }