Lines Matching defs:ModuleMap
1 //===- ModuleMap.cpp - Describe the layout of modules ---------------------===//
9 // This file defines the ModuleMap implementation, which describes the layout
14 #include "clang/Lex/ModuleMap.h"
56 void ModuleMap::resolveLinkAsDependencies(Module *Mod) {
67 void ModuleMap::addLinkAsDependency(Module *Mod) {
74 Module::HeaderKind ModuleMap::headerRoleToKind(ModuleHeaderRole Role) {
90 ModuleMap::ModuleHeaderRole
91 ModuleMap::headerKindToRole(Module::HeaderKind Kind) {
107 bool ModuleMap::isModular(ModuleHeaderRole Role) {
108 return !(Role & (ModuleMap::TextualHeader | ModuleMap::ExcludedHeader));
112 ModuleMap::resolveExport(Module *Mod,
129 Module *ModuleMap::resolveModuleId(const ModuleId &Id, Module *Mod,
178 OptionalFileEntryRef ModuleMap::findHeader(
293 void ModuleMap::resolveHeader(Module *Mod,
331 bool ModuleMap::resolveAsBuiltinHeader(
355 ModuleMap::ModuleMap(SourceManager &SourceMgr, DiagnosticsEngine &Diags,
363 ModuleMap::~ModuleMap() = default;
365 void ModuleMap::setTarget(const TargetInfo &Target) {
408 bool ModuleMap::isBuiltinHeader(FileEntryRef File) {
413 bool ModuleMap::shouldImportRelativeToBuiltinIncludeDir(StringRef FileName,
420 ModuleMap::HeadersMap::iterator ModuleMap::findKnownHeader(FileEntryRef File) {
424 Known == Headers.end() && ModuleMap::isBuiltinHeader(File)) {
431 ModuleMap::KnownHeader ModuleMap::findHeaderInUmbrellaDirs(
466 ModuleMap::KnownHeader Header) {
468 if (Header.getRole() & ModuleMap::PrivateHeader) {
489 void ModuleMap::diagnoseHeaderInclusion(Module *RequestingModule,
511 if (Header.getRole() == ModuleMap::ExcludedHeader) {
571 static bool isBetterKnownHeader(const ModuleMap::KnownHeader &New,
572 const ModuleMap::KnownHeader &Old) {
581 if ((New.getRole() & ModuleMap::PrivateHeader) !=
582 (Old.getRole() & ModuleMap::PrivateHeader))
583 return !(New.getRole() & ModuleMap::PrivateHeader);
586 if ((New.getRole() & ModuleMap::TextualHeader) !=
587 (Old.getRole() & ModuleMap::TextualHeader))
588 return !(New.getRole() & ModuleMap::TextualHeader);
591 if ((New.getRole() == ModuleMap::ExcludedHeader) !=
592 (Old.getRole() == ModuleMap::ExcludedHeader))
593 return New.getRole() != ModuleMap::ExcludedHeader;
599 ModuleMap::KnownHeader ModuleMap::findModuleForHeader(FileEntryRef File,
602 auto MakeResult = [&](ModuleMap::KnownHeader R) -> ModuleMap::KnownHeader {
603 if (!AllowTextual && R.getRole() & ModuleMap::TextualHeader)
610 ModuleMap::KnownHeader Result;
614 if (!AllowExcluded && H.getRole() == ModuleMap::ExcludedHeader)
628 ModuleMap::KnownHeader
629 ModuleMap::findOrCreateModuleForHeaderInUmbrellaDir(FileEntryRef File) {
697 ArrayRef<ModuleMap::KnownHeader>
698 ModuleMap::findAllModulesForHeader(FileEntryRef File) {
709 ArrayRef<ModuleMap::KnownHeader>
710 ModuleMap::findResolvedModulesForHeader(FileEntryRef File) const {
719 bool ModuleMap::isHeaderInUnavailableModule(FileEntryRef Header) const {
723 bool ModuleMap::isHeaderUnavailableInModule(
733 if (I->getRole() == ModuleMap::ExcludedHeader)
744 if (!RequestingModule && I->getRole() == ModuleMap::TextualHeader)
817 Module *ModuleMap::findModule(StringRef Name) const {
825 Module *ModuleMap::findOrInferSubmodule(Module *Parent, StringRef Name) {
841 Module *ModuleMap::lookupModuleUnqualified(StringRef Name,
851 Module *ModuleMap::lookupModuleQualified(StringRef Name, Module *Context) const{
858 std::pair<Module *, bool> ModuleMap::findOrCreateModule(StringRef Name,
871 Module *ModuleMap::createModule(StringRef Name, Module *Parent,
888 Module *ModuleMap::createGlobalModuleFragmentForModuleUnit(SourceLocation Loc,
902 ModuleMap::createImplicitGlobalModuleFragmentForModuleUnit(SourceLocation Loc,
917 ModuleMap::createPrivateModuleFragmentForInterfaceUnit(Module *Parent,
926 Module *ModuleMap::createModuleUnitWithKind(SourceLocation Loc, StringRef Name,
940 Module *ModuleMap::createModuleForInterfaceUnit(SourceLocation Loc,
958 Module *ModuleMap::createModuleForImplementationUnit(SourceLocation Loc,
982 Module *ModuleMap::createHeaderUnit(SourceLocation Loc, StringRef Name,
1009 Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir,
1016 Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir,
1188 Module *ModuleMap::createShadowedModule(StringRef Name, bool IsFramework,
1203 void ModuleMap::setUmbrellaHeaderAsWritten(
1218 void ModuleMap::setUmbrellaDirAsWritten(
1228 void ModuleMap::addUnresolvedHeader(Module *Mod,
1238 Header.Kind = headerRoleToKind(ModuleMap::ModuleHeaderRole(
1239 headerKindToRole(Header.Kind) | ModuleMap::TextualHeader));
1264 void ModuleMap::resolveHeaderDirectives(const FileEntry *File) const {
1280 void ModuleMap::resolveHeaderDirectives(
1294 const_cast<ModuleMap *>(this)->resolveHeader(Mod, Header, NeedsFramework);
1299 void ModuleMap::addHeader(Module *Mod, Module::Header Header,
1327 FileID ModuleMap::getContainingModuleMapFileID(const Module *Module) const {
1335 ModuleMap::getContainingModuleMapFile(const Module *Module) const {
1339 FileID ModuleMap::getModuleMapFileIDForUniquing(const Module *M) const {
1348 ModuleMap::getModuleMapFileForUniquing(const Module *M) const {
1352 void ModuleMap::setInferredModuleAllowedBy(Module *M, FileID ModMapFID) {
1358 ModuleMap::canonicalizeModuleMapPath(SmallVectorImpl<char> &Path) {
1390 void ModuleMap::addAdditionalModuleMapFile(const Module *M,
1391 FileEntryRef ModuleMap) {
1392 AdditionalModMaps[M].insert(ModuleMap);
1395 LLVM_DUMP_METHOD void ModuleMap::dump() {
1417 bool ModuleMap::resolveExports(Module *Mod, bool Complain) {
1430 bool ModuleMap::resolveUses(Module *Mod, bool Complain) {
1444 bool ModuleMap::resolveConflicts(Module *Mod, bool Complain) {
1540 ModuleMap ⤅
1606 using Attributes = ModuleMap::Attributes;
1613 ModuleMap &Map, FileID ModuleMapFID,
2414 ModuleMap::ModuleHeaderRole Role = ModuleMap::NormalHeader;
2417 Role = ModuleMap::PrivateHeader;
2424 Role = ModuleMap::ExcludedHeader;
2428 Role = ModuleMap::ModuleHeaderRole(Role | ModuleMap::TextualHeader);
2433 Role = ModuleMap::ModuleHeaderRole(Role | ModuleMap::TextualHeader);
2607 Map.addHeader(ActiveModule, std::move(Header), ModuleMap::TextualHeader);
3136 bool ModuleMap::parseModuleMapFile(FileEntryRef File, bool IsSystem,