blob: 147079550a27c3b29192c054e34173348a5716aa [file] [log] [blame]
// RUN: not %target-swift-frontend %s -typecheck
protocol P {
func doSomething()
typealias Y
func doSomething2(Y)
}
protocol P2 : P {
func doSomething3()
}
struct X {}
class B<T> : P2 {
func doSomething() { }
typealias Y = T
func doSomething2<T2>(t : T) { }
func doSomething3() { }
}
func DoSomething<T : P, T2 where T2 == T.Y>(t : T, t2 : T2) {
t.doSomething()
t.doSomething2(t2)
}
func DoSomething2(p : P) {
p.doSomething()
}
func DoSomething3<T : P2>(t : T) {
t.doSomething3()
}
func DoSomething3(p2 : P2) {
p2.doSomething3()
}
var b = B<X>()
var x = X()
DoSomething(b, t2: x)
DoSomething2(b)
DoSomething3(b)