[all-commits] [llvm/llvm-project] bf150e: [libc++] [ranges] ADL-proof ranges::iter_{swap, move}.

Quuxplusone via All-commits all-commits at lists.llvm.org
Mon Jan 31 11:15:01 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bf150e8dabb1efeffcdd5ba643126475b5286c83
      https://github.com/llvm/llvm-project/commit/bf150e8dabb1efeffcdd5ba643126475b5286c83
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2022-01-31 (Mon, 31 Jan 2022)

  Changed paths:
    M libcxx/include/__iterator/iter_move.h
    M libcxx/include/__iterator/iter_swap.h
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.swap/iter_swap.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/bidirectional_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/forward_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/output_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/random_access_range.compile.pass.cpp
    M libcxx/test/std/ranges/range.req/range.refinements/viewable_range.compile.pass.cpp

  Log Message:
  -----------
  [libc++] [ranges] ADL-proof ranges::iter_{swap,move}.

As discovered in D117817, `std::ranges::input_range<Holder<Incomplete>*[10]>`
hard-errored before this patch. That's because `input_range` requires
`iter_rvalue_reference_t`, which requires `iter_move`, which was
not ADL-proofed.

Add ADL-proofing tests to all the range refinements.
`output_range` and `common_range` shouldn't be affected,
and all the others subsume `input_range` anyway, but we might as
well be thorough.

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




More information about the All-commits mailing list