mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Note that while the original crasher in the radar is gone, my reduced test case triggers an IRGen crash on both 5.1 and master because of an unrelated bug that appears to be related to protocol requirement signatures and declaration ordering. Fixes <rdar://problem/54952911>.
50 lines
956 B
Swift
50 lines
956 B
Swift
// RUN: %target-swift-frontend -emit-silgen %s
|
|
// FIXME: Get the above to pass with -emit-ir too.
|
|
|
|
public protocol P1 {
|
|
associatedtype A1: P3 where A1.A4.A3: P6
|
|
}
|
|
|
|
public protocol P12 : P1 where A1: P2 {}
|
|
|
|
public protocol P2 : P3 where A3 == S3<A2>, A4: P4 {}
|
|
|
|
public protocol P4 : P3 where A3 == S2<A2>, A4: P5 {}
|
|
|
|
public protocol P5: P9 where A3 == S1<A2> {}
|
|
|
|
public protocol P6: P11 where A2: P7 {}
|
|
|
|
public protocol P7: P8 {}
|
|
|
|
public protocol P8 {}
|
|
|
|
public protocol P11 {
|
|
associatedtype A2 : P8
|
|
}
|
|
|
|
public struct S1<A2 : P8> : P11 {}
|
|
|
|
public struct S2<A2 : P8> : P11 {}
|
|
|
|
extension S2: P6 where A2: P7 {}
|
|
|
|
public struct S3<A2 : P8> : P11 {}
|
|
|
|
public protocol P9 {
|
|
associatedtype A2: P7
|
|
associatedtype A3: P11 where A3.A2 == A2
|
|
}
|
|
|
|
public protocol P3 : P9 {
|
|
associatedtype A4: P9 where A4.A2 == A2
|
|
}
|
|
|
|
public protocol P10 {
|
|
associatedtype A3: P11 where A3.A2: P7
|
|
}
|
|
|
|
public struct S4<T: P12> : P10 {
|
|
public typealias A3 = T.A1.A4.A3
|
|
}
|