#ifndef LLVM_TESTING_ADT_STRINGMAPENTRY_H_
#define LLVM_TESTING_ADT_STRINGMAPENTRY_H_
#include "llvm/ADT/StringMapEntry.h"
#include "gmock/gmock.h"
#include <ostream>
#include <type_traits>
namespace llvm {
namespace detail {
template <typename T, typename = std::void_t<>>
struct CanOutputToOStream : std::false_type {};
CanOutputToOStream<T, std::void_t<decltype(std::declval<std::ostream &>() << std::declval<T>())>>;
}
template <typename T>
std::ostream &operator<<(std::ostream &OS, const StringMapEntry<T> &E) { … }
namespace detail {
template <typename StringMapEntryT>
class StringMapEntryMatcherImpl
: public testing::MatcherInterface<StringMapEntryT> { … };
template <typename KeyMatcherT, typename ValueMatcherT>
class StringMapEntryMatcher { … };
}
template <typename KeyMatcherT, typename ValueMatcherT>
detail::StringMapEntryMatcher<KeyMatcherT, ValueMatcherT>
IsStringMapEntry(KeyMatcherT KM, ValueMatcherT VM) { … }
}
#endif