enum class Decl::ModuleOwnershipKind
Description
The kind of ownership a declaration has, for visibility purposes. This enumeration is designed such that higher values represent higher levels of name hiding.
Declared at: clang/include/clang/AST/DeclBase.h:213
Enumerators
Name | Value | Comment |
---|---|---|
Unowned | 0 | This declaration is not owned by a module. |
Visible | 1 | This declaration has an owning module, but is globally visible (typically because its owning module is visible and we know that modules cannot later become hidden in this compilation). After serialization and deserialization, this will be converted to VisibleWhenImported. |
VisibleWhenImported | 2 | This declaration has an owning module, and is visible when that module is imported. |
ReachableWhenImported | 3 | This declaration has an owning module, and is visible to lookups that occurs within that module. And it is reachable in other module when the owning module is transitively imported. |
ModulePrivate | 4 | This declaration has an owning module, but is only visible to lookups that occur within that module. The discarded declarations in global module fragment belongs to this group too. |