clang-tools 20.0.0git
Public Member Functions | List of all members
clang::clangd::ModulesBuilder::ModulesBuilderImpl Class Reference

Public Member Functions

 ModulesBuilderImpl (const GlobalCompilationDatabase &CDB)
 
const GlobalCompilationDatabasegetCDB () const
 
llvm::Error getOrBuildModuleFile (StringRef ModuleName, const ThreadsafeFS &TFS, ProjectModules &MDB, ReusablePrerequisiteModules &BuiltModuleFiles)
 

Detailed Description

Definition at line 385 of file ModulesBuilder.cpp.

Constructor & Destructor Documentation

◆ ModulesBuilderImpl()

clang::clangd::ModulesBuilder::ModulesBuilderImpl::ModulesBuilderImpl ( const GlobalCompilationDatabase CDB)
inline

Definition at line 387 of file ModulesBuilder.cpp.

Member Function Documentation

◆ getCDB()

const GlobalCompilationDatabase & clang::clangd::ModulesBuilder::ModulesBuilderImpl::getCDB ( ) const
inline

Definition at line 389 of file ModulesBuilder.cpp.

Referenced by getOrBuildModuleFile().

◆ getOrBuildModuleFile()

llvm::Error clang::clangd::ModulesBuilder::ModulesBuilderImpl::getOrBuildModuleFile ( StringRef  ModuleName,
const ThreadsafeFS TFS,
ProjectModules MDB,
ReusablePrerequisiteModules &  BuiltModuleFiles 
)

It is possible that we're meeting third party modules (modules whose source are not in the project. e.g, the std module may be a third-party module for most project) or something wrong with the implementation of ProjectModules. FIXME: How should we treat third party modules here? If we want to ignore third party modules, we should return true instead of false here. Currently we simply bail out.

Definition at line 400 of file ModulesBuilder.cpp.

References getCDB(), clang::clangd::ProjectModules::getSourceForModuleName(), and clang::clangd::log().


The documentation for this class was generated from the following file: