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

A normal type: a head normal form of types where the head is not a parametric type instantiation. More...

#include <SemanticTypes.h>

+ Inheritance diagram for uLang::CNormalType:

Public Member Functions

 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
 
virtual const CNominalTypeAsNominalType () const
 
virtual EComparability GetComparability () const
 
virtual bool IsPersistable () const =0
 
virtual bool IsExplicitlyCastable () const =0
 
virtual bool IsExplicitlyConcrete () const =0
 
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 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
 

Detailed Description

A normal type: a head normal form of types where the head is not a parametric type instantiation.

Constructor & Destructor Documentation

◆ CNormalType()

uLang::CNormalType::CNormalType ( ETypeKind  Kind,
CSemanticProgram Program 
)
inline

Member Function Documentation

◆ AsChecked() [1/2]

template<typename TType >
TType & uLang::CNormalType::AsChecked ( )
inline

◆ AsChecked() [2/2]

template<typename TType >
TType const & uLang::CNormalType::AsChecked ( ) const
inline

◆ AsNominalType()

virtual const CNominalType * uLang::CNormalType::AsNominalType ( ) const
inlinevirtual
Returns
this as a CNominalType, or nullptr if this is not a CNominalType

Reimplemented in uLang::CNominalType.

◆ AsNullable() [1/2]

template<typename TType >
TType * uLang::CNormalType::AsNullable ( )
inline

◆ AsNullable() [2/2]

template<typename TType >
TType const * uLang::CNormalType::AsNullable ( ) const
inline

◆ FindInstanceMember() [1/2]

virtual SmallDefinitionArray uLang::CNormalType::FindInstanceMember ( const CSymbol MemberName,
EMemberOrigin  Origin,
const SQualifier Qualifier,
const CAstPackage ContextPackage,
VisitStampType  VisitStamp 
) const
inlinevirtual

◆ FindInstanceMember() [2/2]

SmallDefinitionArray uLang::CNormalType::FindInstanceMember ( const CSymbol MemberName,
EMemberOrigin  Origin,
const SQualifier Qualifier,
const CAstPackage ContextPackage = nullptr 
) const

Look up a member in this type.

◆ FindTypeMember() [1/2]

SmallDefinitionArray uLang::CNormalType::FindTypeMember ( const CSymbol MemberName,
EMemberOrigin  Origin,
const SQualifier Qualifier 
) const

◆ FindTypeMember() [2/2]

virtual SmallDefinitionArray uLang::CNormalType::FindTypeMember ( const CSymbol MemberName,
EMemberOrigin  Origin,
const SQualifier Qualifier,
VisitStampType  VisitStamp 
) const
inlinevirtual

◆ GetComparability()

◆ GetInnerType()

virtual const CTypeBase * uLang::CNormalType::GetInnerType ( ) const
inlinevirtual

Gets the innermost type of this type

Reimplemented in uLang::CCastableType, uLang::CConcreteType, uLang::CInvariantValueType, and uLang::CValueType.

◆ GetKind()

ETypeKind uLang::CNormalType::GetKind ( ) const
inline

◆ GetNormalType()

virtual const CNormalType & uLang::CNormalType::GetNormalType ( ) const
inlineoverridevirtual

Normalizes generic types to head-normal types.

Implements uLang::CTypeBase.

◆ GetReferenceValueType()

virtual const CTypeBase * uLang::CNormalType::GetReferenceValueType ( ) const
inlinevirtual

If this type is a CReferenceType, this gets the non-reference value type, otherwise returns itself

Reimplemented in uLang::CReferenceType.

◆ IsA()

template<typename TType >
bool uLang::CNormalType::IsA ( ) const
inline

◆ IsExplicitlyCastable()

◆ IsExplicitlyConcrete()

◆ IsPersistable()


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