Lines Matching defs:Super
1036 // Super below) can be instantiated to either a const type or a
1044 template <typename Super>
1045 operator Matcher<Super&>() const {
1046 // By passing object_ (type T&) to Impl(), which expects a Super&,
1047 // we make sure that Super is a super type of T. In particular,
1051 return MakeMatcher(new Impl<Super>(object_));
1055 template <typename Super>
1056 class Impl : public MatcherInterface<Super&> {
1058 explicit Impl(Super& x) : object_(x) {} // NOLINT
1060 // MatchAndExplain() takes a Super& (as opposed to const Super&)
1061 // in order to match the interface MatcherInterface<Super&>.
1063 Super& x, MatchResultListener* listener) const {
1070 UniversalPrinter<Super&>::Print(object_, os);
1075 UniversalPrinter<Super&>::Print(object_, os);
1079 const Super& object_;