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

NameValueComment
Unowned0This declaration is not owned by a module.
Visible1This 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.
VisibleWhenImported2This declaration has an owning module, and is visible when that module is imported.
ReachableWhenImported3This 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.
ModulePrivate4This 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.