diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt index 62fa8d96d060..ea1e23af1c9d 100644 --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -540,14 +540,14 @@ set(files __thread/timed_backoff_policy.h __threading_support __tree - __tuple/apply_cv.h - __tuple/make_tuple_types.h - __tuple/sfinae_helpers.h - __tuple/tuple_element.h - __tuple/tuple_indices.h - __tuple/tuple_like.h - __tuple/tuple_size.h - __tuple/tuple_types.h + __tuple_dir/apply_cv.h + __tuple_dir/make_tuple_types.h + __tuple_dir/sfinae_helpers.h + __tuple_dir/tuple_element.h + __tuple_dir/tuple_indices.h + __tuple_dir/tuple_like.h + __tuple_dir/tuple_size.h + __tuple_dir/tuple_types.h __type_traits/add_const.h __type_traits/add_cv.h __type_traits/add_lvalue_reference.h diff --git a/libcxx/include/__functional/hash.h b/libcxx/include/__functional/hash.h index 041730dfb6b1..64412fc9f6a8 100644 --- a/libcxx/include/__functional/hash.h +++ b/libcxx/include/__functional/hash.h @@ -12,7 +12,7 @@ #include <__config> #include <__functional/unary_function.h> #include <__fwd/hash.h> -#include <__tuple/sfinae_helpers.h> +#include <__tuple_dir/sfinae_helpers.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/pair.h> diff --git a/libcxx/include/__fwd/get.h b/libcxx/include/__fwd/get.h index 81624038980e..98758ebca0df 100644 --- a/libcxx/include/__fwd/get.h +++ b/libcxx/include/__fwd/get.h @@ -13,7 +13,7 @@ #include <__fwd/array.h> #include <__fwd/pair.h> #include <__fwd/tuple.h> -#include <__tuple/tuple_element.h> +#include <__tuple_dir/tuple_element.h> #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__memory/compressed_pair.h b/libcxx/include/__memory/compressed_pair.h index 9dd42f8d6eb6..6f747e78bfad 100644 --- a/libcxx/include/__memory/compressed_pair.h +++ b/libcxx/include/__memory/compressed_pair.h @@ -13,7 +13,7 @@ #include <__config> #include <__fwd/get.h> #include <__fwd/tuple.h> -#include <__tuple/tuple_indices.h> +#include <__tuple_dir/tuple_indices.h> #include <__type_traits/dependent_type.h> #include <__utility/forward.h> #include <__utility/move.h> diff --git a/libcxx/include/__ranges/subrange.h b/libcxx/include/__ranges/subrange.h index 3efcd9602a20..55689fe42d53 100644 --- a/libcxx/include/__ranges/subrange.h +++ b/libcxx/include/__ranges/subrange.h @@ -28,8 +28,8 @@ #include <__ranges/enable_borrowed_range.h> #include <__ranges/size.h> #include <__ranges/view_interface.h> -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_size.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_size.h> #include <__utility/move.h> #include diff --git a/libcxx/include/__tuple/apply_cv.h b/libcxx/include/__tuple_dir/apply_cv.h similarity index 100% rename from libcxx/include/__tuple/apply_cv.h rename to libcxx/include/__tuple_dir/apply_cv.h diff --git a/libcxx/include/__tuple/make_tuple_types.h b/libcxx/include/__tuple_dir/make_tuple_types.h similarity index 93% rename from libcxx/include/__tuple/make_tuple_types.h rename to libcxx/include/__tuple_dir/make_tuple_types.h index 38e2547d13dc..913ff9bbd60c 100644 --- a/libcxx/include/__tuple/make_tuple_types.h +++ b/libcxx/include/__tuple_dir/make_tuple_types.h @@ -12,11 +12,11 @@ #include <__config> #include <__fwd/array.h> #include <__fwd/tuple.h> -#include <__tuple/apply_cv.h> -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_indices.h> -#include <__tuple/tuple_size.h> -#include <__tuple/tuple_types.h> +#include <__tuple_dir/apply_cv.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_indices.h> +#include <__tuple_dir/tuple_size.h> +#include <__tuple_dir/tuple_types.h> #include <__type_traits/remove_cv.h> #include <__type_traits/remove_reference.h> #include diff --git a/libcxx/include/__tuple/sfinae_helpers.h b/libcxx/include/__tuple_dir/sfinae_helpers.h similarity index 97% rename from libcxx/include/__tuple/sfinae_helpers.h rename to libcxx/include/__tuple_dir/sfinae_helpers.h index ef3967015b80..fde53419d07b 100644 --- a/libcxx/include/__tuple/sfinae_helpers.h +++ b/libcxx/include/__tuple_dir/sfinae_helpers.h @@ -11,11 +11,11 @@ #include <__config> #include <__fwd/tuple.h> -#include <__tuple/make_tuple_types.h> -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_like.h> -#include <__tuple/tuple_size.h> -#include <__tuple/tuple_types.h> +#include <__tuple_dir/make_tuple_types.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_like.h> +#include <__tuple_dir/tuple_size.h> +#include <__tuple_dir/tuple_types.h> #include <__type_traits/enable_if.h> #include <__type_traits/integral_constant.h> #include <__type_traits/is_assignable.h> diff --git a/libcxx/include/__tuple/tuple_element.h b/libcxx/include/__tuple_dir/tuple_element.h similarity index 97% rename from libcxx/include/__tuple/tuple_element.h rename to libcxx/include/__tuple_dir/tuple_element.h index d30b2c148dbf..06f49bf500fb 100644 --- a/libcxx/include/__tuple/tuple_element.h +++ b/libcxx/include/__tuple_dir/tuple_element.h @@ -10,8 +10,8 @@ #define _LIBCPP___TUPLE_TUPLE_ELEMENT_H #include <__config> -#include <__tuple/tuple_indices.h> -#include <__tuple/tuple_types.h> +#include <__tuple_dir/tuple_indices.h> +#include <__tuple_dir/tuple_types.h> #include <__type_traits/add_const.h> #include <__type_traits/add_cv.h> #include <__type_traits/add_volatile.h> diff --git a/libcxx/include/__tuple/tuple_indices.h b/libcxx/include/__tuple_dir/tuple_indices.h similarity index 100% rename from libcxx/include/__tuple/tuple_indices.h rename to libcxx/include/__tuple_dir/tuple_indices.h diff --git a/libcxx/include/__tuple/tuple_like.h b/libcxx/include/__tuple_dir/tuple_like.h similarity index 97% rename from libcxx/include/__tuple/tuple_like.h rename to libcxx/include/__tuple_dir/tuple_like.h index 3b596916a65e..327287786e3b 100644 --- a/libcxx/include/__tuple/tuple_like.h +++ b/libcxx/include/__tuple_dir/tuple_like.h @@ -13,7 +13,7 @@ #include <__fwd/array.h> #include <__fwd/pair.h> #include <__fwd/tuple.h> -#include <__tuple/tuple_types.h> +#include <__tuple_dir/tuple_types.h> #include <__type_traits/integral_constant.h> #include diff --git a/libcxx/include/__tuple/tuple_size.h b/libcxx/include/__tuple_dir/tuple_size.h similarity index 98% rename from libcxx/include/__tuple/tuple_size.h rename to libcxx/include/__tuple_dir/tuple_size.h index 26f9d9725d31..d551b2258cba 100644 --- a/libcxx/include/__tuple/tuple_size.h +++ b/libcxx/include/__tuple_dir/tuple_size.h @@ -11,7 +11,7 @@ #include <__config> #include <__fwd/tuple.h> -#include <__tuple/tuple_types.h> +#include <__tuple_dir/tuple_types.h> #include <__type_traits/is_const.h> #include <__type_traits/is_volatile.h> #include diff --git a/libcxx/include/__tuple/tuple_types.h b/libcxx/include/__tuple_dir/tuple_types.h similarity index 100% rename from libcxx/include/__tuple/tuple_types.h rename to libcxx/include/__tuple_dir/tuple_types.h diff --git a/libcxx/include/__utility/pair.h b/libcxx/include/__utility/pair.h index d9286891189e..e1832980b389 100644 --- a/libcxx/include/__utility/pair.h +++ b/libcxx/include/__utility/pair.h @@ -15,10 +15,10 @@ #include <__functional/unwrap_ref.h> #include <__fwd/get.h> #include <__fwd/tuple.h> -#include <__tuple/sfinae_helpers.h> -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_indices.h> -#include <__tuple/tuple_size.h> +#include <__tuple_dir/sfinae_helpers.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_indices.h> +#include <__tuple_dir/tuple_size.h> #include <__type_traits/is_implicitly_default_constructible.h> #include <__utility/forward.h> #include <__utility/move.h> diff --git a/libcxx/include/array b/libcxx/include/array index cb1a6d120258..068a6bd4cc42 100644 --- a/libcxx/include/array +++ b/libcxx/include/array @@ -115,7 +115,7 @@ template const T&& get(const array&&) noexce #include <__assert> // all public C++ headers provide the assertion handler #include <__config> #include <__iterator/reverse_iterator.h> -#include <__tuple/sfinae_helpers.h> +#include <__tuple_dir/sfinae_helpers.h> #include <__utility/integer_sequence.h> #include <__utility/move.h> #include <__utility/unreachable.h> @@ -137,8 +137,8 @@ template const T&& get(const array&&) noexce #include // [tuple.helper] -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_size.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_size.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/libcxx.imp b/libcxx/include/libcxx.imp index b2a018e30b2f..2c591b71737b 100644 --- a/libcxx/include/libcxx.imp +++ b/libcxx/include/libcxx.imp @@ -39,7 +39,7 @@ { include: [ "@<__string/.*>", "private", "", "public" ] }, { include: [ "@<__support/.*>", "private", "", "public" ] }, { include: [ "@<__thread/.*>", "private", "", "public" ] }, - { include: [ "@<__tuple/.*>", "private", "", "public" ] }, + { include: [ "@<__tuple_dir/.*>", "private", "", "public" ] }, { include: [ "@<__type_traits/.*>", "private", "", "public" ] }, { include: [ "@<__utility/.*>", "private", "", "public" ] }, { include: [ "@<__variant/.*>", "private", "", "public" ] }, diff --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap.in index 2a2064c74aea..c0473a4f3d2d 100644 --- a/libcxx/include/module.modulemap.in +++ b/libcxx/include/module.modulemap.in @@ -1342,16 +1342,16 @@ module std [system] { header "tuple" export * - module apply_cv { private header "__tuple/apply_cv.h" } + module apply_cv { private header "__tuple_dir/apply_cv.h" } module get_fwd { private header "__fwd/get.h" } - module make_tuple_types { private header "__tuple/make_tuple_types.h" } - module sfinae_helpers { private header "__tuple/sfinae_helpers.h" } - module tuple_element { private header "__tuple/tuple_element.h" } + module make_tuple_types { private header "__tuple_dir/make_tuple_types.h" } + module sfinae_helpers { private header "__tuple_dir/sfinae_helpers.h" } + module tuple_element { private header "__tuple_dir/tuple_element.h" } module tuple_fwd { private header "__fwd/tuple.h" } - module tuple_indices { private header "__tuple/tuple_indices.h" } - module tuple_like { private header "__tuple/tuple_like.h" } - module tuple_size { private header "__tuple/tuple_size.h" } - module tuple_types { private header "__tuple/tuple_types.h" } + module tuple_indices { private header "__tuple_dir/tuple_indices.h" } + module tuple_like { private header "__tuple_dir/tuple_like.h" } + module tuple_size { private header "__tuple_dir/tuple_size.h" } + module tuple_types { private header "__tuple_dir/tuple_types.h" } } module type_traits { header "type_traits" diff --git a/libcxx/include/optional b/libcxx/include/optional index 1061a0f9c378..a7a887a9cbdc 100644 --- a/libcxx/include/optional +++ b/libcxx/include/optional @@ -166,7 +166,7 @@ template #include <__functional/invoke.h> #include <__functional/unary_function.h> #include <__memory/construct_at.h> -#include <__tuple/sfinae_helpers.h> +#include <__tuple_dir/sfinae_helpers.h> #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> diff --git a/libcxx/include/ranges b/libcxx/include/ranges index 643853e1d3ab..5928efa6027e 100644 --- a/libcxx/include/ranges +++ b/libcxx/include/ranges @@ -352,8 +352,8 @@ namespace std { #include // [tuple.helper] -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_size.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_size.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/utility b/libcxx/include/utility index ac6c18b06abc..3cc7ce5b3025 100644 --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -267,8 +267,8 @@ template #include // [tuple.helper] -#include <__tuple/tuple_element.h> -#include <__tuple/tuple_size.h> +#include <__tuple_dir/tuple_element.h> +#include <__tuple_dir/tuple_size.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/test/libcxx/private_headers.verify.cpp b/libcxx/test/libcxx/private_headers.verify.cpp index 23186a958197..6ecc220f50af 100644 --- a/libcxx/test/libcxx/private_headers.verify.cpp +++ b/libcxx/test/libcxx/private_headers.verify.cpp @@ -553,14 +553,14 @@ END-SCRIPT #include <__string/extern_template_lists.h> // expected-error@*:* {{use of private header from outside its module: '__string/extern_template_lists.h'}} #include <__thread/poll_with_backoff.h> // expected-error@*:* {{use of private header from outside its module: '__thread/poll_with_backoff.h'}} #include <__thread/timed_backoff_policy.h> // expected-error@*:* {{use of private header from outside its module: '__thread/timed_backoff_policy.h'}} -#include <__tuple/apply_cv.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/apply_cv.h'}} -#include <__tuple/make_tuple_types.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/make_tuple_types.h'}} -#include <__tuple/sfinae_helpers.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/sfinae_helpers.h'}} -#include <__tuple/tuple_element.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/tuple_element.h'}} -#include <__tuple/tuple_indices.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/tuple_indices.h'}} -#include <__tuple/tuple_like.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/tuple_like.h'}} -#include <__tuple/tuple_size.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/tuple_size.h'}} -#include <__tuple/tuple_types.h> // expected-error@*:* {{use of private header from outside its module: '__tuple/tuple_types.h'}} +#include <__tuple_dir/apply_cv.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/apply_cv.h'}} +#include <__tuple_dir/make_tuple_types.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/make_tuple_types.h'}} +#include <__tuple_dir/sfinae_helpers.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/sfinae_helpers.h'}} +#include <__tuple_dir/tuple_element.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/tuple_element.h'}} +#include <__tuple_dir/tuple_indices.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/tuple_indices.h'}} +#include <__tuple_dir/tuple_like.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/tuple_like.h'}} +#include <__tuple_dir/tuple_size.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/tuple_size.h'}} +#include <__tuple_dir/tuple_types.h> // expected-error@*:* {{use of private header from outside its module: '__tuple_dir/tuple_types.h'}} #include <__type_traits/add_const.h> // expected-error@*:* {{use of private header from outside its module: '__type_traits/add_const.h'}} #include <__type_traits/add_cv.h> // expected-error@*:* {{use of private header from outside its module: '__type_traits/add_cv.h'}} #include <__type_traits/add_lvalue_reference.h> // expected-error@*:* {{use of private header from outside its module: '__type_traits/add_lvalue_reference.h'}} diff --git a/libcxx/utils/generate_iwyu_mapping.py b/libcxx/utils/generate_iwyu_mapping.py index 615c6e3e534a..1e0242b954d3 100644 --- a/libcxx/utils/generate_iwyu_mapping.py +++ b/libcxx/utils/generate_iwyu_mapping.py @@ -30,8 +30,10 @@ def generate_map(include): c_headers.append(i.name) result = [] + temporary_mappings = {'__tuple_dir': 'tuple'} for i in detail_directories: - result.append(f'{generate(f"@<{i}/.*>", i[2:])},') + public_header = temporary_mappings.get(i, i.lstrip('_')) + result.append(f'{generate(f"@<{i}/.*>", public_header)},') for i in detail_files: public = []