[libcxx-commits] [PATCH] D106124: [libcxx][modules] protects users from relying on ranges detail headers
Christopher Di Bella via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jul 15 21:31:40 PDT 2021
cjdb created this revision.
cjdb added reviewers: ldionne, zoecarver, Mordante.
cjdb requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
libc++ has started splicing standard library headers into much more
fine-grained content for maintainability. It's very likely that outdated
and naive tooling (some of which is outside of LLVM's scope) will
suggest users include things such as <__ranges/access.h> instead of
<ranges>, and Hyrum's law suggests that users will eventually begin to
rely on this without the help of tooling. As such, this commit
intends to protect users from themselves, by making it a hard error for
anyone outside of the standard library to include libc++ detail headers.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D106124
Files:
libcxx/include/__config
libcxx/include/__ranges/access.h
libcxx/include/__ranges/all.h
libcxx/include/__ranges/concepts.h
libcxx/include/__ranges/copyable_box.h
libcxx/include/__ranges/data.h
libcxx/include/__ranges/drop_view.h
libcxx/include/__ranges/empty.h
libcxx/include/__ranges/empty_view.h
libcxx/include/__ranges/enable_borrowed_range.h
libcxx/include/__ranges/enable_view.h
libcxx/include/__ranges/ref_view.h
libcxx/include/__ranges/size.h
libcxx/include/__ranges/subrange.h
libcxx/include/__ranges/transform_view.h
libcxx/include/__ranges/view_interface.h
libcxx/include/iterator
libcxx/include/ranges
libcxx/include/span
libcxx/include/string_view
libcxx/test/libcxx/diagnostics/detail.headers/ranges/access.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/all.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/concepts.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/copyable_box.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/data.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/drop_view.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/empty.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/empty_view.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/enable_borrowed_range.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/enable_view.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/ref_view.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/size.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/subrange.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/transform_view.header.verify.cpp
libcxx/test/libcxx/diagnostics/detail.headers/ranges/view_interface.header.verify.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106124.359209.patch
Type: text/x-patch
Size: 31676 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210716/59bf77e5/attachment-0001.bin>
More information about the libcxx-commits
mailing list