// 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 : P0 { static func <<(lhs: S0c, rhs: S0c) -> S0c { return lhs } }