[libc++][Modules] Add missing includes and exports
authorIan Anderson <iana@apple.com>
Sun, 7 May 2023 00:26:49 +0000 (19:26 -0500)
committerIan Anderson <iana@apple.com>
Mon, 8 May 2023 00:54:49 +0000 (19:54 -0500)
commit79702f7f593dece7afb67fec03df884d50525b96
tree6438b61aa09091874cec355c7afb1000c12fee38
parent63959a18e74dbe0bed1532a8b43c811e3181aac7
[libc++][Modules] Add missing includes and exports

Several headers are missing includes for things they use.

type_traits.is_enum needs to export type_traits.integral_constant so that clients can access its `value` member without explicitly including __type_traits/integral_constant.h themselves.

Make `subrange_fwd` a peer submodule to `subrange` rather than a submodule of it, and have `subrange` export `subrange_fwd`. That will make it easier to programmatically generate modules for the private detail headers, and it will accomplish the same effect that __ranges/subrange.h will make subrange_kind visible.

Reviewed By: Mordante, #libc

Differential Revision: https://reviews.llvm.org/D150055
24 files changed:
libcxx/include/__algorithm/ranges_minmax.h
libcxx/include/__algorithm/ranges_partition_copy.h
libcxx/include/__format/format_arg.h
libcxx/include/__functional/bind.h
libcxx/include/__functional/bind_back.h
libcxx/include/__functional/bind_front.h
libcxx/include/__functional/boyer_moore_searcher.h
libcxx/include/__functional/compose.h
libcxx/include/__functional/function.h
libcxx/include/__functional/not_fn.h
libcxx/include/__hash_table
libcxx/include/__locale
libcxx/include/__ranges/copyable_box.h
libcxx/include/__ranges/filter_view.h
libcxx/include/__ranges/join_view.h
libcxx/include/__ranges/range_adaptor.h
libcxx/include/__ranges/transform_view.h
libcxx/include/__ranges/zip_view.h
libcxx/include/__tree
libcxx/include/module.modulemap.in
libcxx/include/optional
libcxx/include/string_view
libcxx/include/tuple
libcxx/include/unordered_map