[libc++] Fix overly complicated test of std::span's extent
authorLouis Dionne <ldionne@apple.com>
Tue, 18 Feb 2020 20:04:33 +0000 (15:04 -0500)
committerLouis Dionne <ldionne@apple.com>
Tue, 18 Feb 2020 20:04:33 +0000 (15:04 -0500)
Thanks to Billy O'Neal for the patch.

Differential Revision: https://reviews.llvm.org/D73138

libcxx/test/std/containers/views/span.sub/subspan.pass.cpp

index e46dcc19d97a5a15dac2f3b688e55a3e1701e7bd..185821aa54f3be898f066e25891747a73732a1d5 100644 (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());