UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
uLang::CDefinition Class Referenceabstract

#include <Definition.h>

+ Inheritance diagram for uLang::CDefinition:

Public Types

enum class  EKind : uint8_t { VISIT_KIND }
 
- Public Types inherited from uLang::CAttributable
enum class  EAttributableScope : uint8_t {
  Module , Class , Struct , Data ,
  Function , Enum , Enumerator , AttributeClass ,
  Interface , Expression , TypeDefinition , ScopedAccessLevel ,
  ClassTypeFunction , AttributeClassTypeFunction , InterfaceTypeFunction
}
 

Public Member Functions

UE_API CDefinition (EKind Kind, CScope &EnclosingScope, const CSymbol &Name)
 
UE_API ~CDefinition ()
 
bool TryMarkOverriddenAndConstrainedDefinitionsVisited (VisitStampType VisitStamp) const
 
EKind GetKind () const
 
template<typename TDefinition >
TDefinitionAsChecked ()
 
template<typename TDefinition >
TDefinition const & AsChecked () const
 
template<typename TDefinition >
bool IsA () const
 
template<typename TDefinition >
TDefinitionAsNullable ()
 
template<typename TDefinition >
TDefinition const * AsNullable () const
 
const CDefinitionGetOverriddenDefinition () const
 
const CDefinitionGetBaseOverriddenDefinition () const
 
UE_API const CDefinitionGetBaseClassOverriddenDefinition () const
 
const CDefinitionGetPrototypeDefinition () const
 
void SetConstrainedDefinition (const CDefinition &ConstrainedDefinition)
 
const CDefinitionGetConstrainedDefinition () const
 
CExpressionBaseGetAstNode () const
 
CExpressionBaseGetIrNode (bool bForce=false) const
 
void SetAccessLevel (const TOptional< SAccessLevel > &AccessLevel)
 
const TOptional< SAccessLevel > & SelfAccessLevel () const
 
UE_API SAccessLevel DerivedAccessLevel () const
 
UE_API bool IsInstanceMember () const
 
UE_API bool IsDeprecated () const
 
UE_API bool IsExperimental () const
 
UE_API bool IsFinal () const
 
UE_API const CExpressionBaseGetNativeSpecifierExpression () const
 
UE_API bool IsNative () const
 
UE_API bool IsBuiltIn () const
 
virtual const CLogicalScopeDefinitionAsLogicalScopeNullable () const
 
const CDefinitionGetDefinitionAccessibilityRoot () const
 
UE_API bool IsAccessibleFrom (const CScope &) const
 
virtual bool IsPersistenceCompatConstraint () const =0
 
void SetOverriddenDefinition (const CDefinition &OverriddenDefinition)
 
void SetOverriddenDefinition (const CDefinition *OverriddenDefinition)
 
UE_API const CDefinitionGetEnclosingDefinition () const
 
bool IsExplicitlyLocallyQualified () const
 If the definition is explicitly qualified with the (local:) identifier.
 
bool IsLocallyQualified () const
 If the definition is implicitly local by virtue of being a definition within a function body/explicitly qualified as (local:).
 
UE_API SQualifier GetImplicitQualifier () const
 Determines the qualifier for this definition, even if not explicitly specified (from the original source).
 
UE_API void SetName (const CSymbol &NewName)
 
TOptional< uint64_tGetCombinedAvailableVersion () const
 
void SetCombinedAvailableVersion (uint64_t InAvailableVersion) const
 
template<typename TDefinition >
TDefinition const & AsChecked () const
 
- Public Member Functions inherited from uLang::CAttributable
bool HasAttributes () const
 
UE_API bool HasAttributeClass (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API bool HasAttributeSubclass (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API int32_t GetAttributeClassCount (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API TArray< const CExpressionBase * > GetAttributesWithAttribute (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API const CExpressionBaseFindAttributeExpr (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API const CExpressionBaseFindAttributeSubclassExpr (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API const TArray< CExpressionBase * > FindAttributeExprs (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API const TArray< CExpressionBase * > FindAttributeSubclassExprs (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API TOptional< SAttributeFindAttribute (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API TArray< SAttributeFindAttributes (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
UE_API void AddAttributeClass (const CClass *AttributeClass)
 
UE_API void AddAttribute (SAttribute Attribute)
 
UE_API void RemoveAttributeClass (const CClass *AttributeClass, const CSemanticProgram &Program)
 
UE_API TOptional< CUTF8StringGetAttributeTextValue (const CClass *AttributeClass, const CSemanticProgram &Program) const
 
CAttributableoperator= (const CAttributable &Other)=delete
 
CAttributableoperator= (CAttributable &&Other)=delete
 
UE_API bool HasAttributeClassHack (const CClass *AttributeClass, const CSemanticProgram &) const
 
UE_API bool HasAttributeFunctionHack (const CFunction *AttributeFunction, const CSemanticProgram &) const
 
- Public Member Functions inherited from uLang::CNamed
ULANG_FORCEINLINE CNamed ()
 
ULANG_FORCEINLINE CNamed (const CSymbol &Name)
 
ULANG_FORCEINLINE CNamed (const CNamed &Source)
 
ULANG_FORCEINLINE CNamedoperator= (const CNamed &Source)
 
ULANG_FORCEINLINE operator const CSymbol & () const
 
ULANG_FORCEINLINE EEquate Compare (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator== (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator!= (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator<= (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator>= (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator< (const CSymbol &Name) const
 
ULANG_FORCEINLINE bool operator> (const CSymbol &Name) const
 
ULANG_FORCEINLINE const CSymbolGetName () const
 
ULANG_FORCEINLINE SymbolId GetNameId () const
 
ULANG_FORCEINLINE CUTF8StringView AsNameStringView () const
 
ULANG_FORCEINLINE const charAsNameCString () const
 
ULANG_FORCEINLINE UTF8Char AsNameFirstByte () const
 
- Public Member Functions inherited from uLang::TAstNodeRef< CExpressionBase >
CExpressionBaseGetAstNode () const
 
CExpressionBaseGetIrNode (bool bForce=false) const
 
void SetAstNode (CExpressionBase *AstNode)
 
void SetIrNode (CExpressionBase *IrNode)
 
- Public Member Functions inherited from uLang::CSharedMix
 CSharedMix ()
 
virtual UE_API ~CSharedMix ()
 
 CSharedMix (const CSharedMix &Other)=delete
 
CSharedMixoperator= (const CSharedMix &Other)=delete
 
uint32_t GetRefCount () const
 

Public Attributes

CScope_EnclosingScope
 
const int32_t _ParentScopeOrdinal
 
SQualifier _Qualifier
 
- Public Attributes inherited from uLang::CAttributable
TArray< SAttribute_Attributes
 

Protected Member Functions

void SetPrototypeDefinition (const CDefinition &PrototypeDefinition)
 
void SetAstNode (CExpressionBase *AstNode)
 
void SetIrNode (CExpressionBase *IrNode)
 

Additional Inherited Members

- Static Public Member Functions inherited from uLang::CAttributable
static UE_API TOptional< CUTF8StringGetAttributeTextValue (const TArray< SAttribute > &Attributes, const CClass *AttributeClass, const CSemanticProgram &Program)
 
- Static Protected Member Functions inherited from uLang::CSharedMix
template<class ObjectType >
static TSPtrG< ObjectType, false, CHeapRawAllocatorSharedThis (ObjectType *This)
 
template<class ObjectType >
static TSPtrG< const ObjectType, false, CHeapRawAllocatorSharedThis (const ObjectType *This)
 
- Protected Attributes inherited from uLang::CNamed
CSymbol _Name
 

Detailed Description

The base class of scoped definitions.

Member Enumeration Documentation

◆ EKind

Enumerator
VISIT_KIND 

Constructor & Destructor Documentation

◆ CDefinition()

uLang::CDefinition::CDefinition ( EKind  Kind,
CScope EnclosingScope,
const CSymbol Name 
)

◆ ~CDefinition()

uLang::CDefinition::~CDefinition ( )

Member Function Documentation

◆ AsChecked() [1/3]

template<typename TDefinition >
TDefinition & uLang::CDefinition::AsChecked ( )

◆ AsChecked() [2/3]

template<typename TDefinition >
TDefinition const & uLang::CDefinition::AsChecked ( ) const

◆ AsChecked() [3/3]

template<typename TDefinition >
TDefinition const & uLang::CDefinition::AsChecked ( ) const

◆ AsNullable() [1/2]

template<typename TDefinition >
TDefinition * uLang::CDefinition::AsNullable ( )
inline

◆ AsNullable() [2/2]

template<typename TDefinition >
TDefinition const * uLang::CDefinition::AsNullable ( ) const
inline

◆ DefinitionAsLogicalScopeNullable()

virtual const CLogicalScope * uLang::CDefinition::DefinitionAsLogicalScopeNullable ( ) const
inlinevirtual

◆ DerivedAccessLevel()

SAccessLevel uLang::CDefinition::DerivedAccessLevel ( ) const

◆ GetAstNode()

CExpressionBase * uLang::CDefinition::GetAstNode ( ) const
inline

◆ GetBaseClassOverriddenDefinition()

const CDefinition & uLang::CDefinition::GetBaseClassOverriddenDefinition ( ) const

◆ GetBaseOverriddenDefinition()

const CDefinition & uLang::CDefinition::GetBaseOverriddenDefinition ( ) const
inline

◆ GetCombinedAvailableVersion()

TOptional< uint64_t > uLang::CDefinition::GetCombinedAvailableVersion ( ) const
inline

◆ GetConstrainedDefinition()

const CDefinition * uLang::CDefinition::GetConstrainedDefinition ( ) const
inline

◆ GetDefinitionAccessibilityRoot()

const CDefinition & uLang::CDefinition::GetDefinitionAccessibilityRoot ( ) const
inline

◆ GetEnclosingDefinition()

const CDefinition * uLang::CDefinition::GetEnclosingDefinition ( ) const

◆ GetImplicitQualifier()

SQualifier uLang::CDefinition::GetImplicitQualifier ( ) const

Determines the qualifier for this definition, even if not explicitly specified (from the original source).

◆ GetIrNode()

CExpressionBase * uLang::CDefinition::GetIrNode ( bool  bForce = false) const
inline

◆ GetKind()

EKind uLang::CDefinition::GetKind ( ) const
inline

◆ GetNativeSpecifierExpression()

const CExpressionBase * uLang::CDefinition::GetNativeSpecifierExpression ( ) const

◆ GetOverriddenDefinition()

const CDefinition * uLang::CDefinition::GetOverriddenDefinition ( ) const
inline

◆ GetPrototypeDefinition()

const CDefinition * uLang::CDefinition::GetPrototypeDefinition ( ) const
inline

◆ IsA()

template<typename TDefinition >
bool uLang::CDefinition::IsA ( ) const
inline

◆ IsAccessibleFrom()

bool uLang::CDefinition::IsAccessibleFrom ( const CScope Scope) const

◆ IsBuiltIn()

bool uLang::CDefinition::IsBuiltIn ( ) const

◆ IsDeprecated()

bool uLang::CDefinition::IsDeprecated ( ) const

◆ IsExperimental()

bool uLang::CDefinition::IsExperimental ( ) const

◆ IsExplicitlyLocallyQualified()

bool uLang::CDefinition::IsExplicitlyLocallyQualified ( ) const

If the definition is explicitly qualified with the (local:) identifier.

◆ IsFinal()

bool uLang::CDefinition::IsFinal ( ) const

◆ IsInstanceMember()

bool uLang::CDefinition::IsInstanceMember ( ) const

◆ IsLocallyQualified()

bool uLang::CDefinition::IsLocallyQualified ( ) const

If the definition is implicitly local by virtue of being a definition within a function body/explicitly qualified as (local:).

◆ IsNative()

bool uLang::CDefinition::IsNative ( ) const

◆ IsPersistenceCompatConstraint()

◆ SelfAccessLevel()

const TOptional< SAccessLevel > & uLang::CDefinition::SelfAccessLevel ( ) const
inline

◆ SetAccessLevel()

void uLang::CDefinition::SetAccessLevel ( const TOptional< SAccessLevel > &  AccessLevel)
inline

◆ SetAstNode()

void uLang::CDefinition::SetAstNode ( CExpressionBase AstNode)
inlineprotected

◆ SetCombinedAvailableVersion()

void uLang::CDefinition::SetCombinedAvailableVersion ( uint64_t  InAvailableVersion) const
inline

◆ SetConstrainedDefinition()

void uLang::CDefinition::SetConstrainedDefinition ( const CDefinition ConstrainedDefinition)
inline

◆ SetIrNode()

void uLang::CDefinition::SetIrNode ( CExpressionBase IrNode)
inlineprotected

◆ SetName()

void uLang::CDefinition::SetName ( const CSymbol NewName)

◆ SetOverriddenDefinition() [1/2]

void uLang::CDefinition::SetOverriddenDefinition ( const CDefinition OverriddenDefinition)
inline

◆ SetOverriddenDefinition() [2/2]

void uLang::CDefinition::SetOverriddenDefinition ( const CDefinition OverriddenDefinition)
inline

◆ SetPrototypeDefinition()

void uLang::CDefinition::SetPrototypeDefinition ( const CDefinition PrototypeDefinition)
inlineprotected

◆ TryMarkOverriddenAndConstrainedDefinitionsVisited()

bool uLang::CDefinition::TryMarkOverriddenAndConstrainedDefinitionsVisited ( VisitStampType  VisitStamp) const
inline

Member Data Documentation

◆ _EnclosingScope

CScope& uLang::CDefinition::_EnclosingScope

◆ _ParentScopeOrdinal

const int32_t uLang::CDefinition::_ParentScopeOrdinal

◆ _Qualifier

SQualifier uLang::CDefinition::_Qualifier

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