blob: 0d3f052a02471e0e26c428f7fff5c017b45367d3 [file] [log] [blame]
// RUN: %target-typecheck-verify-swift
protocol P0 {
static func << (lhs: Self, rhs: Self) -> Self
}
// Satisfy operator requirement with a global function.
struct S0a : P0 { }
func <<(lhs: S0a, rhs: S0a) -> S0a { return lhs }
// Satisfy operator requirement with a static method.
struct S0b : P0 {
static func <<(lhs: S0b, rhs: S0b) -> S0b { return lhs }
}
// Satisfy operator requirement with a static method in a generic struct.
struct S0c<T> : P0 {
static func <<(lhs: S0c<T>, rhs: S0c<T>) -> S0c<T> { return lhs }
}