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

#include <TypeVariable.h>

+ Inheritance diagram for uLang::CTypeVariable:

Public Member Functions

 CTypeVariable (const CSymbol &Name, const CTypeBase *NegativeType, const CTypeBase *PositiveType, CScope &EnclosingScope)
 
const CTypeBaseGetNegativeType () const
 
void SetNegativeType (const CTypeBase *NegativeType)
 
const CTypeBaseGetPositiveType () const
 
void SetPositiveType (const CTypeBase *PositiveType)
 
virtual EComparability GetComparability () const override
 
virtual const CDefinitionDefinition () const override
 
virtual CUTF8String AsCodeRecursive (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const override
 
virtual bool CanBeCustomAccessorDataType () const override
 
void SetAstNode (CExprDefinition *AstNode)
 
CExprDefinitionGetAstNode () const
 
void SetIrNode (CExprDefinition *AstNode)
 
CExprDefinitionGetIrNode (bool bForce=false) const
 
virtual bool IsPersistenceCompatConstraint () const override
 
virtual bool IsPersistable () const override
 
virtual bool IsExplicitlyCastable () const override
 
virtual bool IsExplicitlyConcrete () const override
 
- Public Member Functions inherited from uLang::CDefinition
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
 
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 Member Functions inherited from uLang::CNominalType
 CNominalType (ETypeKind Kind, CSemanticProgram &Program)
 
virtual const CNominalTypeAsNominalType () const override
 
- Public Member Functions inherited from uLang::CNormalType
 CNormalType (ETypeKind Kind, CSemanticProgram &Program)
 
ETypeKind GetKind () const
 
template<typename TType >
TType & AsChecked ()
 
template<typename TType >
TType const & AsChecked () const
 
template<typename TType >
bool IsA () const
 
template<typename TType >
TType * AsNullable ()
 
template<typename TType >
TType const * AsNullable () const
 
virtual const CTypeBaseGetReferenceValueType () const
 
virtual const CTypeBaseGetInnerType () const
 
UE_API SmallDefinitionArray FindInstanceMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier, const CAstPackage *ContextPackage=nullptr) const
 
virtual SmallDefinitionArray FindInstanceMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier, const CAstPackage *ContextPackage, VisitStampType VisitStamp) const
 
UE_API SmallDefinitionArray FindTypeMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier) const
 
virtual SmallDefinitionArray FindTypeMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier, VisitStampType VisitStamp) const
 
virtual const CNormalTypeGetNormalType () const override
 
- Public Member Functions inherited from uLang::CTypeBase
 CTypeBase (CSemanticProgram &Program)
 
virtual ~CTypeBase ()
 
CSemanticProgramGetProgram () const
 
virtual CNamedTypeAsNamedType ()
 
virtual const CNamedTypeAsNamedType () const
 
virtual CFlowTypeAsFlowType ()
 
virtual const CFlowTypeAsFlowType () const
 
virtual const CAliasTypeAsAliasType () const
 
virtual bool CanBePredictsVarDataType () const
 
CUTF8String AsCode (ETypeSyntaxPrecedence OuterPrecedence=ETypeSyntaxPrecedence::Min, ETypeStringFlag Flag=ETypeStringFlag::Simple) const
 
CUTF8String AsParamsCode (ETypeSyntaxPrecedence OuterPrecedence=ETypeSyntaxPrecedence::Min, ETypeStringFlag Flag=ETypeStringFlag::Simple) const
 
virtual CUTF8String AsParamsCode (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool WithColon, ETypeStringFlag Flag=ETypeStringFlag::Simple) const
 
CUTF8String AsLinkableCode () const
 

Public Attributes

const CDataDefinition_ExplicitParam = nullptr
 
const CTypeVariable_NegativeTypeVariable = nullptr
 
- Public Attributes inherited from uLang::CDefinition
CScope_EnclosingScope
 
const int32_t _ParentScopeOrdinal
 
SQualifier _Qualifier
 
- Public Attributes inherited from uLang::CAttributable
TArray< SAttribute_Attributes
 

Static Public Attributes

static const CDefinition::EKind StaticDefinitionKind = CDefinition::EKind::TypeVariable
 
static const ETypeKind StaticTypeKind = ETypeKind::Variable
 

Additional Inherited Members

- Public Types inherited from uLang::CDefinition
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
}
 
- Static Public Member Functions inherited from uLang::CAttributable
static UE_API TOptional< CUTF8StringGetAttributeTextValue (const TArray< SAttribute > &Attributes, const CClass *AttributeClass, const CSemanticProgram &Program)
 
- Protected Member Functions inherited from uLang::CDefinition
void SetPrototypeDefinition (const CDefinition &PrototypeDefinition)
 
void SetAstNode (CExpressionBase *AstNode)
 
void SetIrNode (CExpressionBase *IrNode)
 
- 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
 

Constructor & Destructor Documentation

◆ CTypeVariable()

uLang::CTypeVariable::CTypeVariable ( const CSymbol Name,
const CTypeBase NegativeType,
const CTypeBase PositiveType,
CScope EnclosingScope 
)
inline

Member Function Documentation

◆ AsCodeRecursive()

virtual CUTF8String uLang::CTypeVariable::AsCodeRecursive ( ETypeSyntaxPrecedence  OuterPrecedence,
TArray< const CFlowType * > &  VisitedFlowTypes,
bool  bLinkable,
ETypeStringFlag  Flag 
) const
inlineoverridevirtual

Reimplemented from uLang::CNominalType.

◆ CanBeCustomAccessorDataType()

virtual bool uLang::CTypeVariable::CanBeCustomAccessorDataType ( ) const
inlineoverridevirtual

Implements uLang::CTypeBase.

◆ Definition()

virtual const CDefinition * uLang::CTypeVariable::Definition ( ) const
inlineoverridevirtual

Implements uLang::CNominalType.

◆ GetAstNode()

CExprDefinition * uLang::CTypeVariable::GetAstNode ( ) const
inline

◆ GetComparability()

virtual EComparability uLang::CTypeVariable::GetComparability ( ) const
inlineoverridevirtual

Returns whether this type is comparable for equality

Reimplemented from uLang::CNormalType.

◆ GetIrNode()

CExprDefinition * uLang::CTypeVariable::GetIrNode ( bool  bForce = false) const
inline

◆ GetNegativeType()

const CTypeBase * uLang::CTypeVariable::GetNegativeType ( ) const
inline

◆ GetPositiveType()

const CTypeBase * uLang::CTypeVariable::GetPositiveType ( ) const
inline

◆ IsExplicitlyCastable()

virtual bool uLang::CTypeVariable::IsExplicitlyCastable ( ) const
inlineoverridevirtual

Implements uLang::CNormalType.

◆ IsExplicitlyConcrete()

virtual bool uLang::CTypeVariable::IsExplicitlyConcrete ( ) const
inlineoverridevirtual

Implements uLang::CNormalType.

◆ IsPersistable()

virtual bool uLang::CTypeVariable::IsPersistable ( ) const
inlineoverridevirtual

Returns whether this type is persistable

Implements uLang::CNormalType.

◆ IsPersistenceCompatConstraint()

virtual bool uLang::CTypeVariable::IsPersistenceCompatConstraint ( ) const
inlineoverridevirtual

Implements uLang::CDefinition.

◆ SetAstNode()

void uLang::CTypeVariable::SetAstNode ( CExprDefinition AstNode)
inline

◆ SetIrNode()

void uLang::CTypeVariable::SetIrNode ( CExprDefinition AstNode)
inline

◆ SetNegativeType()

void uLang::CTypeVariable::SetNegativeType ( const CTypeBase NegativeType)
inline

◆ SetPositiveType()

void uLang::CTypeVariable::SetPositiveType ( const CTypeBase PositiveType)
inline

Member Data Documentation

◆ _ExplicitParam

const CDataDefinition* uLang::CTypeVariable::_ExplicitParam = nullptr

◆ _NegativeTypeVariable

const CTypeVariable* uLang::CTypeVariable::_NegativeTypeVariable = nullptr

◆ StaticDefinitionKind

const CDefinition::EKind uLang::CTypeVariable::StaticDefinitionKind = CDefinition::EKind::TypeVariable
static

◆ StaticTypeKind

const ETypeKind uLang::CTypeVariable::StaticTypeKind = ETypeKind::Variable
static

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