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

Base class for all types. More...

#include <SemanticTypes.h>

+ Inheritance diagram for uLang::CTypeBase:

Public Member Functions

 CTypeBase (CSemanticProgram &Program)
 
virtual ~CTypeBase ()
 
CSemanticProgramGetProgram () const
 
virtual const CNormalTypeGetNormalType () const =0
 
virtual CNamedTypeAsNamedType ()
 
virtual const CNamedTypeAsNamedType () const
 
virtual CFlowTypeAsFlowType ()
 
virtual const CFlowTypeAsFlowType () const
 
virtual const CAliasTypeAsAliasType () const
 
virtual bool CanBeCustomAccessorDataType () const =0
 
virtual bool CanBePredictsVarDataType () const
 
CUTF8String AsCode (ETypeSyntaxPrecedence OuterPrecedence=ETypeSyntaxPrecedence::Min, ETypeStringFlag Flag=ETypeStringFlag::Simple) const
 
virtual CUTF8String AsCodeRecursive (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const =0
 
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
 

Friends

class CSemanticProgram
 

Detailed Description

Base class for all types.

Constructor & Destructor Documentation

◆ CTypeBase()

uLang::CTypeBase::CTypeBase ( CSemanticProgram Program)
inline

◆ ~CTypeBase()

virtual uLang::CTypeBase::~CTypeBase ( )
inlinevirtual

Member Function Documentation

◆ AsAliasType()

virtual const CAliasType * uLang::CTypeBase::AsAliasType ( ) const
inlinevirtual

Reimplemented in uLang::CAliasType.

◆ AsCode()

CUTF8String uLang::CTypeBase::AsCode ( ETypeSyntaxPrecedence  OuterPrecedence = ETypeSyntaxPrecedence::Min,
ETypeStringFlag  Flag = ETypeStringFlag::Simple 
) const
inline

Converts this class into its source code string equivalent, for use in error messages. This is essentially a disassembly of the internal language data-structures into source code. @Notes: The code generated may not round-trip to an equivalent CTypeBase.

◆ AsCodeRecursive()

◆ AsFlowType() [1/2]

virtual CFlowType * uLang::CTypeBase::AsFlowType ( )
inlinevirtual

Reimplemented in uLang::CFlowType.

◆ AsFlowType() [2/2]

virtual const CFlowType * uLang::CTypeBase::AsFlowType ( ) const
inlinevirtual

Reimplemented in uLang::CFlowType.

◆ AsLinkableCode()

CUTF8String uLang::CTypeBase::AsLinkableCode ( ) const
inline

As above, but sacrifices readability to ensure that it will not collide with other CTypes.

◆ AsNamedType() [1/2]

virtual CNamedType * uLang::CTypeBase::AsNamedType ( )
inlinevirtual

Reimplemented in uLang::CNamedType.

◆ AsNamedType() [2/2]

virtual const CNamedType * uLang::CTypeBase::AsNamedType ( ) const
inlinevirtual

Reimplemented in uLang::CNamedType.

◆ AsParamsCode() [1/2]

virtual CUTF8String uLang::CTypeBase::AsParamsCode ( ETypeSyntaxPrecedence  OuterPrecedence,
TArray< const CFlowType * > &  VisitedFlowTypes,
bool  WithColon,
ETypeStringFlag  Flag = ETypeStringFlag::Simple 
) const
inlinevirtual

Reimplemented in uLang::CTupleType.

◆ AsParamsCode() [2/2]

CUTF8String uLang::CTypeBase::AsParamsCode ( ETypeSyntaxPrecedence  OuterPrecedence = ETypeSyntaxPrecedence::Min,
ETypeStringFlag  Flag = ETypeStringFlag::Simple 
) const
inline

As above, but if it's a tuple then doesn't write the enclosing parenthesis, and : before the type.

◆ CanBeCustomAccessorDataType()

◆ CanBePredictsVarDataType()

◆ GetNormalType()

virtual const CNormalType & uLang::CTypeBase::GetNormalType ( ) const
pure virtual

Normalizes generic types to head-normal types.

Implemented in uLang::CNormalType, uLang::CFlowType, and uLang::CAliasType.

◆ GetProgram()

CSemanticProgram & uLang::CTypeBase::GetProgram ( ) const
inline

Friends And Related Symbol Documentation

◆ CSemanticProgram

friend class CSemanticProgram
friend

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