[libc++] Fix overly complicated test of std::span's extent

Thanks to Billy O'Neal for the patch.

Differential Revision: https://reviews.llvm.org/D73138
This commit is contained in:
Louis Dionne 2020-02-18 15:04:33 -05:00
parent 1ae8d81147
commit a7dcbe90cc
1 changed files with 2 additions and 14 deletions

View File

@ -37,13 +37,7 @@ constexpr bool testConstexprSpan(Span sp)
using S2 = decltype(s2);
ASSERT_SAME_TYPE(typename Span::value_type, typename S1::value_type);
ASSERT_SAME_TYPE(typename Span::value_type, typename S2::value_type);
if constexpr (Count != std::dynamic_extent) {
static_assert(S1::extent == Count);
} else if constexpr (Span::extent != std::dynamic_extent) {
static_assert(S1::extent == Span::extent - Offset);
} else {
static_assert(S1::extent == std::dynamic_extent);
}
static_assert(S1::extent == Count);
static_assert(S2::extent == std::dynamic_extent, "");
return
s1.data() == s2.data()
@ -82,13 +76,7 @@ void testRuntimeSpan(Span sp)
using S2 = decltype(s2);
ASSERT_SAME_TYPE(typename Span::value_type, typename S1::value_type);
ASSERT_SAME_TYPE(typename Span::value_type, typename S2::value_type);
if constexpr (Count != std::dynamic_extent) {
static_assert(S1::extent == Count);
} else if constexpr (Span::extent != std::dynamic_extent) {
static_assert(S1::extent == Span::extent - Offset);
} else {
static_assert(S1::extent == std::dynamic_extent);
}
static_assert(S1::extent == Count);
static_assert(S2::extent == std::dynamic_extent, "");
assert(s1.data() == s2.data());
assert(s1.size() == s2.size());