Skip to content

Commit 379faf3

Browse files
committed
fixup! [libc++][NFC] Check for take_view returning different types depending on simple_view-ness
Rename test class and refactor.
1 parent ccb0ed5 commit 379faf3

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

libcxx/test/std/ranges/range.adaptors/range.take/end.pass.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,24 +69,17 @@ constexpr bool test() {
6969
assert(tv.end() == std::ranges::next(tv.begin(), 8));
7070
}
7171

72-
// Check that (non-)simple, non-sized views have different types for their end() member function.
7372
{
74-
// These assertions must be true in order to trigger the different paths through the end member function
75-
// that will return values with different types:
76-
static_assert(!simple_view<NonSimpleViewNonSized>);
77-
static_assert(!std::ranges::sized_range<NonSimpleViewNonSized>);
78-
static_assert(simple_view<SimpleViewNonSized>);
79-
static_assert(std::ranges::range<const SimpleViewNonSized>);
80-
static_assert(!std::ranges::sized_range<const SimpleViewNonSized>);
81-
82-
std::ranges::take_view<NonSimpleViewNonSized> tvns(NonSimpleViewNonSized{buffer, buffer + 8}, 0);
83-
std::ranges::take_view<SimpleViewNonSized> tvs(SimpleViewNonSized{buffer, buffer + 8}, 0);
84-
8573
// __iterator<false> has base with type std::ranges::sentinel_t<NonSimpleViewNonSized>; adding a const qualifier
8674
// would change the equality.
75+
std::ranges::take_view<NonSimpleViewNonSized> tvns(NonSimpleViewNonSized{buffer, buffer + 8}, 0);
8776
static_assert(!std::is_same_v<decltype(tvns.end().base()), std::ranges::sentinel_t<const NonSimpleViewNonSized>>);
77+
}
78+
79+
{
8880
// __iterator<true> has base with type std::ranges::sentinel_t<const NonSimpleViewNonSized>; adding a const qualifier
8981
// would not change the equality.
82+
std::ranges::take_view<SimpleViewNonSized> tvs(SimpleViewNonSized{buffer, buffer + 8}, 0);
9083
static_assert(std::is_same_v<decltype(tvs.end().base()), std::ranges::sentinel_t<const SimpleViewNonSized>>);
9184
}
9285

libcxx/test/std/ranges/range.adaptors/range.take/types.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ struct View : std::ranges::view_base {
6666
};
6767

6868
template <bool Simple>
69-
struct InputView : std::ranges::view_base {
70-
constexpr explicit InputView(int* b, int* e) : begin_(b), end_(e) {}
69+
struct CommonInputView : std::ranges::view_base {
70+
constexpr explicit CommonInputView(int* b, int* e) : begin_(b), end_(e) {}
7171

7272
constexpr common_input_iterator<int*> begin() const { return common_input_iterator<int*>(begin_); }
7373
constexpr common_input_iterator<int*> end() const { return common_input_iterator<int*>(end_); }
@@ -88,12 +88,12 @@ struct InputView : std::ranges::view_base {
8888
int* end_;
8989
};
9090

91-
using NonSimpleViewNonSized = InputView<false>;
91+
using NonSimpleViewNonSized = CommonInputView<false>;
9292
static_assert(std::ranges::view<NonSimpleViewNonSized>);
9393
static_assert(!simple_view<NonSimpleViewNonSized>);
9494
static_assert(!std::ranges::sized_range<NonSimpleViewNonSized>);
9595

96-
using SimpleViewNonSized = InputView<true>;
96+
using SimpleViewNonSized = CommonInputView<true>;
9797
static_assert(!std::ranges::sized_range<SimpleViewNonSized>);
9898
static_assert(std::ranges::view<SimpleViewNonSized>);
9999
static_assert(simple_view<SimpleViewNonSized>);

0 commit comments

Comments
 (0)