blob: 863afebeb6163e7a5db81fc91f67d5115fb7baaa [file] [log] [blame]
// RUN: %target-typecheck-verify-swift
// rdar://problem/21496715
protocol P1 {
func f() // expected-note{{protocol requires function 'f()' with type '() -> ()'}}
}
protocol Q1 {}
extension P1 where Self : Q1 {
// FIXME: Poor QoI
func f() {} // expected-note{{candidate has non-matching type '<Self> () -> ()'}}
}
struct X1 : P1 {} // expected-error{{type 'X1' does not conform to protocol 'P1'}}
// rdar://problem/21153652
protocol P2 {
func f()
}
struct X2 : P2 {
func f() {}
}
extension P2 where Self : Comparable {
func f() {}
}
// rdar://problem/19423637
protocol P3 {
func f() // expected-note{{protocol requires function 'f()' with type '() -> ()'}}
}
extension P3 where Self : Equatable {
func f() {} // expected-note{{candidate has non-matching type '<Self> () -> ()'}}
}
struct X3 : P3 {} // expected-error{{type 'X3' does not conform to protocol 'P3'}}