[libcxx-commits] [libcxx] 5c7dc8e - [libc++][ranges] Add missing test cases for `[[nodiscard]]` tests in `enumerate_view` (#209289)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Jul 19 06:37:10 PDT 2026


Author: Lucas Mellone
Date: 2026-07-19T16:37:05+03:00
New Revision: 5c7dc8e7d72e8f833e5fa4d4790e93ff76b51304

URL: https://github.com/llvm/llvm-project/commit/5c7dc8e7d72e8f833e5fa4d4790e93ff76b51304
DIFF: https://github.com/llvm/llvm-project/commit/5c7dc8e7d72e8f833e5fa4d4790e93ff76b51304.diff

LOG: [libc++][ranges] Add missing test cases for `[[nodiscard]]` tests in `enumerate_view` (#209289)

Addresses missing `[[nodiscard]]` test cases for
`std::views::enumerate`.

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>

Added: 
    

Modified: 
    libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp b/libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp
index 06b0d6a8c148b..99b57f6c5465c 100644
--- a/libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp
+++ b/libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp
@@ -12,10 +12,21 @@
 
 #include <ranges>
 #include <utility>
-#include <vector>
+
+struct View : std::ranges::view_interface<View> {
+  int* begin();
+  const int* begin() const;
+  volatile int* end();
+  const volatile int* end() const;
+};
+static_assert(!std::ranges::common_range<View>);
+static_assert(!std::same_as<std::ranges::iterator_t<View>, std::ranges::iterator_t<const View>>);
+static_assert(!std::same_as<std::ranges::sentinel_t<View>, std::ranges::sentinel_t<const View>>);
+static_assert(std::ranges::sized_range<View>);
+static_assert(std::ranges::forward_range<View>);
 
 void test() {
-  std::vector<int> range;
+  View range;
   std::ranges::enumerate_view ev{range};
 
   // [range.enumerate.view]
@@ -55,6 +66,8 @@ void test() {
   // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
   it + 1;
   // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
+  1 + it;
+  // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
   it - 1;
   // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
   it - it;
@@ -78,4 +91,4 @@ void test() {
 
   // expected-warning at +1 {{ignoring return value of function declared with 'nodiscard' attribute}}
   std::views::enumerate(range);
-}
\ No newline at end of file
+}


        


More information about the libcxx-commits mailing list