Author: Benjamin Kramer Date: 2022-08-25T00:03:08+02:00 New Revision: bbf19a6745d5e2caa60d466c3c9fc8bc8eac3474
URL: https://github.com/llvm/llvm-project/commit/bbf19a6745d5e2caa60d466c3c9fc8bc8eac3474 DIFF: https://github.com/llvm/llvm-project/commit/bbf19a6745d5e2caa60d466c3c9fc8bc8eac3474.diff LOG: [AST] Use std::apply to pop front of tuples. NFCI. Added: Modified: clang/lib/AST/ParentMapContext.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/ParentMapContext.cpp b/clang/lib/AST/ParentMapContext.cpp index e0d4700e4b10b..0840c573e0e45 100644 --- a/clang/lib/AST/ParentMapContext.cpp +++ b/clang/lib/AST/ParentMapContext.cpp @@ -265,16 +265,6 @@ class ParentMapContext::ParentMap { } }; -template <typename Tuple, std::size_t... Is> -auto tuple_pop_front_impl(const Tuple &tuple, std::index_sequence<Is...>) { - return std::make_tuple(std::get<1 + Is>(tuple)...); -} - -template <typename Tuple> auto tuple_pop_front(const Tuple &tuple) { - return tuple_pop_front_impl( - tuple, std::make_index_sequence<std::tuple_size<Tuple>::value - 1>()); -} - template <typename T, typename... U> struct MatchParents { static std::tuple<bool, DynTypedNodeList, const T *, const U *...> match(const DynTypedNodeList &NodeList, @@ -285,10 +275,11 @@ template <typename T, typename... U> struct MatchParents { if (NextParentList.size() == 1) { auto TailTuple = MatchParents<U...>::match(NextParentList, ParentMap); if (std::get<bool>(TailTuple)) { - return std::tuple_cat( - std::make_tuple(true, std::get<DynTypedNodeList>(TailTuple), - TypedNode), - tuple_pop_front(tuple_pop_front(TailTuple))); + return std::apply( + [TypedNode](bool, DynTypedNodeList NodeList, auto... TupleTail) { + return std::make_tuple(true, NodeList, TypedNode, TupleTail...); + }, + TailTuple); } } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits