Files
swift-mirror/validation-test/compiler_crashers_2_fixed/0012-rdar20270240.swift

35 lines
569 B
Swift

// RUN: %target-swift-frontend %s -emit-silgen
protocol FooProtocol {
associatedtype Element
}
protocol Bar {
associatedtype Foo : FooProtocol
typealias Element = Foo.Element
mutating func extend<
C : FooProtocol
where
C.Element == Element
>(elements: C)
}
struct FooImpl<T> : FooProtocol {
typealias Element = T
}
struct BarImpl<T> : Bar {
typealias Foo = FooImpl<T>
// Uncomment this line to make it compile:
// typealias Element = T
mutating func extend<
C : FooProtocol
where
C.Element == T
>(elements: C) {}
}