File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
validation-test/compiler_crashers_2_fixed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ // RUN: %target-swift-frontend -emit-ir %s
2
+
3
+ public protocol HorseSaddle { }
4
+ public enum EnglishSaddle : HorseSaddle { }
5
+
6
+ public enum WesternSaddle < A, B> : HorseSaddle { }
7
+
8
+ public protocol Horse {
9
+ associatedtype Body : Horse
10
+
11
+ associatedtype Saddle : HorseSaddle
12
+
13
+ var body : Body { get }
14
+ }
15
+
16
+ extension Horse {
17
+ typealias Saddle = Body . Saddle
18
+ }
19
+
20
+ public struct DraftHorse < T> : Pony {
21
+ public typealias Saddle = EnglishSaddle
22
+ public typealias Body = Never
23
+ var contents : T
24
+ }
25
+
26
+ // MARK: - Implementation detail
27
+
28
+ extension Never : Horse {
29
+ public typealias Saddle = EnglishSaddle
30
+ public typealias Body = Never
31
+
32
+ public var body : Never {
33
+ switch self { }
34
+ }
35
+ }
36
+
37
+ protocol Pony : Horse where Body == Never { }
38
+ extension Pony {
39
+ public var body : Never { fatalError ( ) }
40
+ }
41
+
You can’t perform that action at this time.
0 commit comments