This is an archive of the discontinued LLVM Phabricator instance.

[libc++][Modules] Add missing includes and exports
ClosedPublic

Authored by iana on May 6 2023, 5:45 PM.

Details

Summary

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.

Diff Detail

Event Timeline

iana created this revision.May 6 2023, 5:45 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 6 2023, 5:45 PM
Herald added a subscriber: ributzka. · View Herald Transcript
iana requested review of this revision.May 6 2023, 5:45 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 6 2023, 5:45 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript
iana updated this revision to Diff 520133.May 6 2023, 5:47 PM

Revert accidental change

Mordante accepted this revision.May 7 2023, 3:32 AM

Thanks for these improvements, LGTM!

This revision is now accepted and ready to land.May 7 2023, 3:32 AM
This revision was automatically updated to reflect the committed changes.