Files
swift-mirror/validation-test/compiler_crashers_2_fixed/rdar62268062.swift
2020-08-18 18:13:31 -04:00

42 lines
799 B
Swift

// RUN: %target-swift-frontend -emit-ir %s
public protocol HorseSaddle {}
public enum EnglishSaddle : HorseSaddle {}
public enum WesternSaddle<A, B> : HorseSaddle {}
public protocol Horse {
associatedtype Body : Horse
associatedtype Saddle: HorseSaddle
var body: Body { get }
}
extension Horse {
typealias Saddle = Body.Saddle
}
public struct DraftHorse<T> : 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() }
}