From d24b71b65d76153d27119b3bee1881c15f80a2b5 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 21 Sep 2025 16:28:44 -0700 Subject: [PATCH] [ADT] Make ilist_select_iterator_type a type alias (NFC) Without this patch, we have: template struct ilist_select_iterator_type { using type = ...; } This means that we must reference "type" with somewhat mouthful: typename ilist_select_iterator_type<...>::type This patch simplifies the reference by making ilist_select_iterator_type a type alias. Now, we always obtain "bool use_iterator_bit" from OptionsT::has_iterator_bits, so this patch folds the logic into the type alias. --- llvm/include/llvm/ADT/ilist_node.h | 25 +++++++++---------------- llvm/include/llvm/ADT/simple_ilist.h | 15 ++++----------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/llvm/include/llvm/ADT/ilist_node.h b/llvm/include/llvm/ADT/ilist_node.h index 8d78d5dbbda44..2af1c6ebbffce 100644 --- a/llvm/include/llvm/ADT/ilist_node.h +++ b/llvm/include/llvm/ADT/ilist_node.h @@ -51,12 +51,11 @@ class ilist_iterator_w_bits; template class ilist_sentinel; // Selector for which iterator type to pick given the iterator-bits node option. -template -struct ilist_select_iterator_type { - using type = std::conditional_t, - ilist_iterator>; -}; +template +using ilist_select_iterator_type = + std::conditional_t, + ilist_iterator>; /// Implementation for an ilist node. /// @@ -91,18 +90,12 @@ class ilist_node_impl friend class ilist_iterator_w_bits; protected: - using self_iterator = - typename ilist_select_iterator_type::type; - using const_self_iterator = - typename ilist_select_iterator_type::type; + using self_iterator = ilist_select_iterator_type; + using const_self_iterator = ilist_select_iterator_type; using reverse_self_iterator = - typename ilist_select_iterator_type::type; + ilist_select_iterator_type; using const_reverse_self_iterator = - typename ilist_select_iterator_type::type; + ilist_select_iterator_type; ilist_node_impl() = default; diff --git a/llvm/include/llvm/ADT/simple_ilist.h b/llvm/include/llvm/ADT/simple_ilist.h index 7236b3fa5a7d2..fcb2e41f62bf0 100644 --- a/llvm/include/llvm/ADT/simple_ilist.h +++ b/llvm/include/llvm/ADT/simple_ilist.h @@ -92,18 +92,11 @@ class simple_ilist using reference = typename OptionsT::reference; using const_pointer = typename OptionsT::const_pointer; using const_reference = typename OptionsT::const_reference; - using iterator = - typename ilist_select_iterator_type::type; - using const_iterator = - typename ilist_select_iterator_type::type; - using reverse_iterator = - typename ilist_select_iterator_type::type; + using iterator = ilist_select_iterator_type; + using const_iterator = ilist_select_iterator_type; + using reverse_iterator = ilist_select_iterator_type; using const_reverse_iterator = - typename ilist_select_iterator_type::type; + ilist_select_iterator_type; using size_type = size_t; using difference_type = ptrdiff_t;