[all-commits] [llvm/llvm-project] 3d3103: [libcxx][ranges] add views::join adaptor object. a...

Hui via All-commits all-commits at lists.llvm.org
Thu Apr 21 04:12:14 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3d3103b733d4346d583a3ada3aabdaa9de4f0446
      https://github.com/llvm/llvm-project/commit/3d3103b733d4346d583a3ada3aabdaa9de4f0446
  Author: Hui Xie <hui.xie1990 at gmail.com>
  Date:   2022-04-21 (Thu, 21 Apr 2022)

  Changed paths:
    M libcxx/docs/Status/Cxx20Issues.csv
    M libcxx/docs/Status/Cxx2bIssues.csv
    M libcxx/docs/Status/RangesIssues.csv
    M libcxx/include/__ranges/join_view.h
    A libcxx/test/std/ranges/range.adaptors/range.join.view/adaptor.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/begin.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/ctad.compile.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/ctor.default.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/end.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/general.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/arrow.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.other.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/ctor.parent.outer.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/decrement.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/eq.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/increment.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/iter.move.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/iter.swap.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/iterator/member_types.compile.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/ctor.other.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.join.view/types.h

  Log Message:
  -----------
  [libcxx][ranges] add views::join adaptor object. added test coverage to join_view

- added views::join adaptor object
- added test for the adaptor object
- fixed some join_view's tests. e.g iter_swap test
- added some negative tests for join_view to test that operations do not exist when constraints aren't met
- added tests that locks down issues that were already addressed in previous change
  - LWG3500 `join_view::iterator::operator->()` is bogus
  - LWG3313 `join_view::iterator::operator--` is incorrectly constrained
  - LWG3517 `join_view::iterator`'s `iter_swap` is underconstrained
  - P2328R1 join_view should join all views of ranges
- fixed some issues in join_view and added tests
  - LWG3535 `join_view::iterator::iterator_category` and `::iterator_concept` lie
  - LWG3474 Nesting ``join_views`` is broken because of CTAD
- added tests for an LWG issue that isn't resolved in the standard yet, but the previous code has workaround.
  - LWG3569 Inner iterator not default_initializable

Reviewed By: #libc, var-const

Spies: var-const, libcxx-commits

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




More information about the All-commits mailing list