clang 23.0.0git
clang::ModuleFileName Class Reference

Identifies a module file to be loaded. More...

#include "clang/Basic/Module.h"

Public Member Functions

 ModuleFileName ()=default
 Creates an empty module file name.
unsigned getImplicitModuleSuffixLength () const
 Returns the suffix length for an implicit module name, zero otherwise.
StringRef str () const
 Returns the plain module file name.
 operator StringRef () const
 Converts to StringRef representing the plain module file name.
bool empty () const
 Checks whether the module file name is empty.

Static Public Member Functions

static ModuleFileName makeExplicit (std::string Name)
 Creates a file name for an explicit module.
static ModuleFileName makeExplicit (StringRef Name)
 Creates a file name for an explicit module.
static ModuleFileName makeImplicit (std::string Name, unsigned SuffixLength)
 Creates a file name for an implicit module.
static ModuleFileName makeImplicit (StringRef Name, unsigned SuffixLength)
 Creates a file name for an implicit module.

Detailed Description

Identifies a module file to be loaded.

For implicitly-built module files, the path is split into the module cache path and the module file name with the (optional) context hash. For all other types of module files, this is just the file system path.

Definition at line 99 of file Module.h.

Constructor & Destructor Documentation

◆ ModuleFileName()

clang::ModuleFileName::ModuleFileName ( )
default

Creates an empty module file name.

Referenced by makeExplicit(), makeExplicit(), makeImplicit(), and makeImplicit().

Member Function Documentation

◆ empty()

bool clang::ModuleFileName::empty ( ) const
inline

Checks whether the module file name is empty.

Definition at line 147 of file Module.h.

Referenced by selectModuleSource().

◆ getImplicitModuleSuffixLength()

unsigned clang::ModuleFileName::getImplicitModuleSuffixLength ( ) const
inline

Returns the suffix length for an implicit module name, zero otherwise.

Definition at line 136 of file Module.h.

Referenced by clang::serialization::ModuleManager::makeKey().

◆ makeExplicit() [1/2]

◆ makeExplicit() [2/2]

ModuleFileName clang::ModuleFileName::makeExplicit ( StringRef Name)
inlinestatic

Creates a file name for an explicit module.

Definition at line 115 of file Module.h.

References makeExplicit(), and ModuleFileName().

◆ makeImplicit() [1/2]

ModuleFileName clang::ModuleFileName::makeImplicit ( std::string Name,
unsigned SuffixLength )
inlinestatic

Creates a file name for an implicit module.

Definition at line 120 of file Module.h.

References clang::File, and ModuleFileName().

Referenced by makeImplicit().

◆ makeImplicit() [2/2]

ModuleFileName clang::ModuleFileName::makeImplicit ( StringRef Name,
unsigned SuffixLength )
inlinestatic

Creates a file name for an implicit module.

Definition at line 131 of file Module.h.

References makeImplicit(), and ModuleFileName().

◆ operator StringRef()

clang::ModuleFileName::operator StringRef ( ) const
inline

Converts to StringRef representing the plain module file name.

Definition at line 144 of file Module.h.

◆ str()

StringRef clang::ModuleFileName::str ( ) const
inline

Returns the plain module file name.

Definition at line 141 of file Module.h.


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