[libc++] Granularize even more of type_traits

Reviewed By: ldionne, #libc

Spies: libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D126593

NOKEYCHECK=True
GitOrigin-RevId: 1972d1e86a62dd9a8c39f82d1dc3b5d0a75d2422
diff --git a/include/module.modulemap.in b/include/module.modulemap.in
index 1fbf883..f146703 100644
--- a/include/module.modulemap.in
+++ b/include/module.modulemap.in
@@ -1029,63 +1029,80 @@
     export functional.__functional.unwrap_ref
     export *
 
-    module add_const                  { private header "__type_traits/add_const.h" }
-    module add_cv                     { private header "__type_traits/add_cv.h" }
-    module add_lvalue_reference       { private header "__type_traits/add_lvalue_reference.h" }
-    module add_pointer                { private header "__type_traits/add_pointer.h" }
-    module add_rvalue_reference       { private header "__type_traits/add_rvalue_reference.h" }
-    module add_volatile               { private header "__type_traits/add_volatile.h" }
-    module conditional                { private header "__type_traits/conditional.h" }
-    module conjunction                { private header "__type_traits/conjunction.h" }
-    module decay                      { private header "__type_traits/decay.h" }
-    module disjunction                { private header "__type_traits/disjunction.h" }
-    module enable_if                  { private header "__type_traits/enable_if.h" }
-    module extent                     { private header "__type_traits/extent.h" }
-    module integral_constant          { private header "__type_traits/integral_constant.h" }
-    module is_abstract                { private header "__type_traits/is_abstract.h" }
-    module is_aggregate               { private header "__type_traits/is_aggregate.h" }
-    module is_arithmetic              { private header "__type_traits/is_arithmetic.h" }
-    module is_array                   { private header "__type_traits/is_array.h" }
-    module is_base_of                 { private header "__type_traits/is_base_of.h" }
-    module is_bounded_array           { private header "__type_traits/is_bounded_array.h" }
-    module is_callable                { private header "__type_traits/is_callable.h" }
-    module is_class                   { private header "__type_traits/is_class.h" }
-    module is_compound                { private header "__type_traits/is_compound.h" }
-    module is_const                   { private header "__type_traits/is_const.h" }
-    module is_convertible             { private header "__type_traits/is_convertible.h" }
-    module is_empty                   { private header "__type_traits/is_empty.h" }
-    module is_enum                    { private header "__type_traits/is_enum.h" }
-    module is_final                   { private header "__type_traits/is_final.h" }
-    module is_floating_point          { private header "__type_traits/is_floating_point.h" }
-    module is_function                { private header "__type_traits/is_function.h" }
-    module is_fundamental             { private header "__type_traits/is_fundamental.h" }
-    module is_integral                { private header "__type_traits/is_integral.h" }
-    module is_member_function_pointer { private header "__type_traits/is_member_function_pointer.h" }
-    module is_member_object_pointer   { private header "__type_traits/is_member_object_pointer.h" }
-    module is_member_pointer          { private header "__type_traits/is_member_pointer.h" }
-    module is_null_pointer            { private header "__type_traits/is_null_pointer.h" }
-    module is_object                  { private header "__type_traits/is_object.h" }
-    module is_pointer                 { private header "__type_traits/is_pointer.h" }
-    module is_reference               { private header "__type_traits/is_reference.h" }
-    module is_reference_wrapper       { private header "__type_traits/is_reference_wrapper.h" }
-    module is_referenceable           { private header "__type_traits/is_referenceable.h" }
-    module is_same                    { private header "__type_traits/is_same.h" }
-    module is_scalar                  { private header "__type_traits/is_scalar.h" }
-    module is_signed                  { private header "__type_traits/is_signed.h" }
-    module is_unbounded_array         { private header "__type_traits/is_unbounded_array.h" }
-    module is_union                   { private header "__type_traits/is_union.h" }
-    module is_unsigned                { private header "__type_traits/is_unsigned.h" }
-    module is_void                    { private header "__type_traits/is_void.h" }
-    module is_volatile                { private header "__type_traits/is_volatile.h" }
-    module rank                       { private header "__type_traits/rank.h" }
-    module remove_all_extents         { private header "__type_traits/remove_all_extents.h" }
-    module remove_const               { private header "__type_traits/remove_const.h" }
-    module remove_cv                  { private header "__type_traits/remove_cv.h" }
-    module remove_extent              { private header "__type_traits/remove_extent.h" }
-    module remove_pointer             { private header "__type_traits/remove_pointer.h" }
-    module remove_reference           { private header "__type_traits/remove_reference.h" }
-    module remove_volatile            { private header "__type_traits/remove_volatile.h" }
-    module type_identity              { private header "__type_traits/type_identity.h" }
+    module add_const                        { private header "__type_traits/add_const.h" }
+    module add_cv                           { private header "__type_traits/add_cv.h" }
+    module add_lvalue_reference             { private header "__type_traits/add_lvalue_reference.h" }
+    module add_pointer                      { private header "__type_traits/add_pointer.h" }
+    module add_rvalue_reference             { private header "__type_traits/add_rvalue_reference.h" }
+    module add_volatile                     { private header "__type_traits/add_volatile.h" }
+    module alignment_of                     { private header "__type_traits/alignment_of.h" }
+    module apply_cv                         { private header "__type_traits/apply_cv.h" }
+    module conditional                      { private header "__type_traits/conditional.h" }
+    module conjunction                      { private header "__type_traits/conjunction.h" }
+    module decay                            { private header "__type_traits/decay.h" }
+    module disjunction                      { private header "__type_traits/disjunction.h" }
+    module enable_if                        { private header "__type_traits/enable_if.h" }
+    module extent                           { private header "__type_traits/extent.h" }
+    module has_unique_object_representation { private header "__type_traits/has_unique_object_representation.h" }
+    module has_virtual_destructor           { private header "__type_traits/has_virtual_destructor.h" }
+    module integral_constant                { private header "__type_traits/integral_constant.h" }
+    module is_abstract                      { private header "__type_traits/is_abstract.h" }
+    module is_aggregate                     { private header "__type_traits/is_aggregate.h" }
+    module is_arithmetic                    { private header "__type_traits/is_arithmetic.h" }
+    module is_array                         { private header "__type_traits/is_array.h" }
+    module is_assignable                    { private header "__type_traits/is_assignable.h" }
+    module is_base_of                       { private header "__type_traits/is_base_of.h" }
+    module is_bounded_array                 { private header "__type_traits/is_bounded_array.h" }
+    module is_callable                      { private header "__type_traits/is_callable.h" }
+    module is_class                         { private header "__type_traits/is_class.h" }
+    module is_compound                      { private header "__type_traits/is_compound.h" }
+    module is_const                         { private header "__type_traits/is_const.h" }
+    module is_constant_evaluated            { private header "__type_traits/is_constant_evaluated.h" }
+    module is_convertible                   { private header "__type_traits/is_convertible.h" }
+    module is_copy_assignable               { private header "__type_traits/is_copy_assignable.h" }
+    module is_core_convertible              { private header "__type_traits/is_core_convertible.h" }
+    module is_empty                         { private header "__type_traits/is_empty.h" }
+    module is_enum                          { private header "__type_traits/is_enum.h" }
+    module is_final                         { private header "__type_traits/is_final.h" }
+    module is_floating_point                { private header "__type_traits/is_floating_point.h" }
+    module is_function                      { private header "__type_traits/is_function.h" }
+    module is_fundamental                   { private header "__type_traits/is_fundamental.h" }
+    module is_integral                      { private header "__type_traits/is_integral.h" }
+    module is_literal_type                  { private header "__type_traits/is_literal_type.h" }
+    module is_member_function_pointer       { private header "__type_traits/is_member_function_pointer.h" }
+    module is_member_object_pointer         { private header "__type_traits/is_member_object_pointer.h" }
+    module is_member_pointer                { private header "__type_traits/is_member_pointer.h" }
+    module is_move_assignable               { private header "__type_traits/is_move_assignable.h" }
+    module is_null_pointer                  { private header "__type_traits/is_null_pointer.h" }
+    module is_object                        { private header "__type_traits/is_object.h" }
+    module is_pod                           { private header "__type_traits/is_pod.h" }
+    module is_pointer                       { private header "__type_traits/is_pointer.h" }
+    module is_polymorphic                   { private header "__type_traits/is_polymorphic.h" }
+    module is_reference                     { private header "__type_traits/is_reference.h" }
+    module is_reference_wrapper             { private header "__type_traits/is_reference_wrapper.h" }
+    module is_referenceable                 { private header "__type_traits/is_referenceable.h" }
+    module is_same                          { private header "__type_traits/is_same.h" }
+    module is_scalar                        { private header "__type_traits/is_scalar.h" }
+    module is_scoped_enum                   { private header "__type_traits/is_scoped_enum.h" }
+    module is_signed                        { private header "__type_traits/is_signed.h" }
+    module is_standard_layout               { private header "__type_traits/is_standard_layout.h" }
+    module is_trivial                       { private header "__type_traits/is_trivial.h" }
+    module is_trivially_copyable            { private header "__type_traits/is_trivially_copyable.h" }
+    module is_unbounded_array               { private header "__type_traits/is_unbounded_array.h" }
+    module is_union                         { private header "__type_traits/is_union.h" }
+    module is_unsigned                      { private header "__type_traits/is_unsigned.h" }
+    module is_void                          { private header "__type_traits/is_void.h" }
+    module is_volatile                      { private header "__type_traits/is_volatile.h" }
+    module rank                             { private header "__type_traits/rank.h" }
+    module remove_all_extents               { private header "__type_traits/remove_all_extents.h" }
+    module remove_const                     { private header "__type_traits/remove_const.h" }
+    module remove_cv                        { private header "__type_traits/remove_cv.h" }
+    module remove_extent                    { private header "__type_traits/remove_extent.h" }
+    module remove_pointer                   { private header "__type_traits/remove_pointer.h" }
+    module remove_reference                 { private header "__type_traits/remove_reference.h" }
+    module remove_volatile                  { private header "__type_traits/remove_volatile.h" }
+    module type_identity                    { private header "__type_traits/type_identity.h" }
+    module underlying_type                  { private header "__type_traits/underlying_type.h" }
   }
   module typeindex {
     header "typeindex"