[libc++][Modules] Make module exports consistent with header includes
authorIan Anderson <iana@apple.com>
Mon, 26 Jun 2023 22:07:24 +0000 (15:07 -0700)
committerIan Anderson <iana@apple.com>
Thu, 29 Jun 2023 22:37:03 +0000 (15:37 -0700)
commit40cdb220f5af63160679def0aee23aa1cbd49b60
treea596e0de61ba981abbaa7c0488cfd68cc48f4b3e
parentf78c9be14d739b27875004a751283c2431220ad1
[libc++][Modules] Make module exports consistent with header includes

Some modules export modules that they don't import (i.e. that their header doesn't directly include). That sometimes works when the exported submodule is in the same module, but when the `std` mega module is broken up (D144322), some of the exports stop working. Make the exports and includes consistent, either by adding includes for the exports, or by removing exports for missing includes.

The `concepts.equality_comparable` export in `std.iterator.__iterator.concepts` isn't doing anything because 1) it's resolved as `std.iterator.__iterator.concepts.equality_comparable` and 2) there's a `__concepts` submodule in between `std.concepts` and `equality_comparable`. Fix it to be `std.concepts.__concepts.equality_comparable`.

<span> is listed in both `std.span` and `std.experimental.span`. Delete the latter module.
There is no `__errc` module or header, so remove that export from `std.system_error`.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D153211
13 files changed:
libcxx/include/__filesystem/path.h
libcxx/include/__memory/concepts.h
libcxx/include/__ranges/all.h
libcxx/include/__ranges/transform_view.h
libcxx/include/__system_error/error_condition.h
libcxx/include/module.modulemap.in
libcxx/test/libcxx/transitive_includes/cxx03.csv
libcxx/test/libcxx/transitive_includes/cxx11.csv
libcxx/test/libcxx/transitive_includes/cxx14.csv
libcxx/test/libcxx/transitive_includes/cxx17.csv
libcxx/test/libcxx/transitive_includes/cxx20.csv
libcxx/test/libcxx/transitive_includes/cxx23.csv
libcxx/test/libcxx/transitive_includes/cxx26.csv