[libc++] Rename __tuple to __tuple_dir to avoid file collision

Rename the `__tuple` directory in libc++ headers to `__tuple_dir`
to avoid file collision when installing.  Historically, `__tuple` has
been a file and it has been replaced by a directory
in 2d52c6bfae.  Replacing a regular file
with a directory (or more importantly, the other way around when
downgrading) is not universally supported.  Since this is an internal
header, its actual name should not matter, so just rename it to avoid
problems.

Differential Revision: https://reviews.llvm.org/D139270
This commit is contained in:
Michał Górny
2022-12-04 07:39:41 +01:00
parent 3781b7905d
commit ec11388b33
22 changed files with 59 additions and 57 deletions

View File

@@ -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

View File

@@ -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>

View File

@@ -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 <cstddef>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

View File

@@ -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>

View File

@@ -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 <type_traits>

View File

@@ -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 <cstddef>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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 <cstddef>

View File

@@ -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 <cstddef>

View File

@@ -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>

View File

@@ -115,7 +115,7 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) 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 <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
#include <initializer_list>
// [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

View File

@@ -39,7 +39,7 @@
{ include: [ "@<__string/.*>", "private", "<string>", "public" ] },
{ include: [ "@<__support/.*>", "private", "<support>", "public" ] },
{ include: [ "@<__thread/.*>", "private", "<thread>", "public" ] },
{ include: [ "@<__tuple/.*>", "private", "<tuple>", "public" ] },
{ include: [ "@<__tuple_dir/.*>", "private", "<tuple>", "public" ] },
{ include: [ "@<__type_traits/.*>", "private", "<type_traits>", "public" ] },
{ include: [ "@<__utility/.*>", "private", "<utility>", "public" ] },
{ include: [ "@<__variant/.*>", "private", "<variant>", "public" ] },

View File

@@ -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"

View File

@@ -166,7 +166,7 @@ template<class T>
#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>

View File

@@ -352,8 +352,8 @@ namespace std {
#include <iterator>
// [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

View File

@@ -267,8 +267,8 @@ template <class T>
#include <initializer_list>
// [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

View File

@@ -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'}}

View File

@@ -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 = []