diff options
author | Abseil Team <absl-team@google.com> | 2019-03-08T22·06-0800 |
---|---|---|
committer | Derek Mauro <dmauro@google.com> | 2019-03-08T22·11-0500 |
commit | 88a152ae747c3c42dc9167d46c590929b048d436 (patch) | |
tree | e0858f1abd59c78a59b7d8449b7fb7c76904c88c /absl/hash/hash_test.cc | |
parent | c1cecb25a94c075725e9d2640f6b978a8f61957b (diff) |
Export of internal Abseil changes.
-- 5dc8d7504b7c11710b19365a6582c288c8992366 by Derek Mauro <dmauro@google.com>: Fix constexpr Span::last under MSVC and add Span constexpr tests. PiperOrigin-RevId: 237515952 -- 5ea8c146e653bbc49ff7e698699478242df7de35 by Derek Mauro <dmauro@google.com>: Implement Span::first and Span::last from C++20. https://github.com/abseil/abseil-cpp/pull/274 PiperOrigin-RevId: 237494399 -- 08db3417f1d8fe4556255d57a2f0df51b09bdd9a by Derek Mauro <dmauro@google.com>: HTTPS in more URLs. PiperOrigin-RevId: 237486823 -- 83ec63a7f8e47b62af619546f9f7b3bf72e74e86 by Derek Mauro <dmauro@google.com>: Changed HTTP URLs to HTTPS where possible. https://github.com/abseil/abseil-cpp/pull/270 PiperOrigin-RevId: 237445310 -- 220bf279c14cb31efa239500d1a70e0ac0c32e3c by Abseil Team <absl-team@google.com>: Support parsing decltype(nullptr) as a type. PiperOrigin-RevId: 237336739 -- ced234bbe78f5d495c3f6f6a9c2e0a95f7c080a5 by Gennadiy Rozental <rogeeff@google.com>: Introduce internal interface for setting environment variable value in scope PiperOrigin-RevId: 237275806 -- 1f1acb4e294af24d9f7598e85163d5e1d9958ae9 by Samuel Benzaquen <sbenza@google.com>: Avoid using aliases in the SFINAE expressions to make it more compatible with MSVC. Turn on the tests in MSVC. PiperOrigin-RevId: 237261456 -- 06cf7de6250a0572ef90fa1176f742ca0451ce71 by Derek Mauro <dmauro@google.com>: Fix unused variable warning. PiperOrigin-RevId: 237108006 GitOrigin-RevId: 5dc8d7504b7c11710b19365a6582c288c8992366 Change-Id: Ife5182c80942945c4e8700844c8febb482d6ad82
Diffstat (limited to 'absl/hash/hash_test.cc')
-rw-r--r-- | absl/hash/hash_test.cc | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/absl/hash/hash_test.cc b/absl/hash/hash_test.cc index d9ebd30f69c4..a2430e7a653d 100644 --- a/absl/hash/hash_test.cc +++ b/absl/hash/hash_test.cc @@ -165,9 +165,6 @@ TEST(HashValueTest, PointerAlignment) { } } -// TODO(EricWF): MSVC 15 has a bug that causes it to incorrectly evaluate the -// SFINAE in internal/hash.h, causing this test to fail. -#if !defined(_MSC_VER) TEST(HashValueTest, PairAndTuple) { EXPECT_TRUE((is_hashable<std::pair<int, int>>::value)); EXPECT_TRUE((is_hashable<std::pair<const int&, const int&>>::value)); @@ -196,7 +193,6 @@ TEST(HashValueTest, PairAndTuple) { std::forward_as_tuple(42, 0, 0), std::forward_as_tuple(3, 9, 9), std::forward_as_tuple(0, 0, -42)))); } -#endif // !defined(_MSC_VER) TEST(HashValueTest, CombineContiguousWorks) { std::vector<std::tuple<int>> v1 = {std::make_tuple(1), std::make_tuple(3)}; @@ -304,16 +300,12 @@ TEST(HashValueTest, Strings) { SpyHash(absl::string_view("ABC"))); } -// TODO(EricWF): MSVC 15 has a bug that causes it to incorrectly evaluate the -// SFINAE in internal/hash.h, causing this test to fail. -#if !defined(_MSC_VER) TEST(HashValueTest, StdArray) { EXPECT_TRUE((is_hashable<std::array<int, 3>>::value)); EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly( std::make_tuple(std::array<int, 3>{}, std::array<int, 3>{{0, 23, 42}}))); } -#endif // !defined(_MSC_VER) TEST(HashValueTest, StdBitset) { EXPECT_TRUE((is_hashable<std::bitset<257>>::value)); @@ -414,9 +406,6 @@ TEST(HashValueTest, Variant) { #endif } -// TODO(EricWF): MSVC 15 has a bug that causes it to incorrectly evaluate the -// SFINAE in internal/hash.h, causing this test to fail. -#if !defined(_MSC_VER) TEST(HashValueTest, Maps) { EXPECT_TRUE((is_hashable<std::map<int, std::string>>::value)); @@ -433,7 +422,6 @@ TEST(HashValueTest, Maps) { MM{{0, "foo"}, {42, "bar"}}, MM{{1, "foo"}, {42, "bar"}}, MM{{1, "foo"}, {1, "foo"}, {43, "bar"}}, MM{{1, "foo"}, {43, "baz"}}))); } -#endif // !defined(_MSC_VER) template <typename T, typename = void> struct IsHashCallble : std::false_type {}; @@ -511,8 +499,16 @@ struct CombineVariadic { Int(4)); } }; +enum class InvokeTag { + kUniquelyRepresented, + kHashValue, +#if ABSL_HASH_INTERNAL_SUPPORT_LEGACY_HASH_ + kLegacyHash, +#endif // ABSL_HASH_INTERNAL_SUPPORT_LEGACY_HASH_ + kStdHash, + kNone +}; -using InvokeTag = absl::hash_internal::InvokeHashTag; template <InvokeTag T> using InvokeTagConstant = std::integral_constant<InvokeTag, T>; |