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

#include <SemanticTypes.h>

+ Inheritance diagram for uLang::CFunctionType:

Public Types

using ParamTypes = TRangeView< CTypeBase const *const *, CTypeBase const *const * >
 

Public Member Functions

 CFunctionType (CSemanticProgram &Program, const CTypeBase &ParamsType, const CTypeBase &ReturnType, const SEffectSet Effects, TArray< const CTypeVariable * > &&TypeVariables={}, bool ImplicitlySpecialized=false)
 
const CTypeBaseGetParamsType () const
 
const CTypeBaseGetReturnType () const
 
SEffectSet GetEffects () const
 
bool ImplicitlySpecialized () const
 
const TArray< const CTypeVariable * > & GetTypeVariables () const
 
ParamTypes GetParamTypes () const
 
UE_API void BuildTypeVariableCode (CUTF8StringBuilder &Builder, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const
 
void BuildTypeVariableCode (CUTF8StringBuilder &Builder, ETypeStringFlag Flag=ETypeStringFlag::Simple) const
 
UE_API void BuildEffectAttributeCode (CUTF8StringBuilder &Builder) const
 
UE_API void BuildParameterBlockCode (CUTF8StringBuilder &Builder, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const
 
virtual UE_API CUTF8String AsCodeRecursive (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const override
 
virtual bool IsPersistable () const override
 
virtual bool IsExplicitlyCastable () const override
 
virtual bool IsExplicitlyConcrete () const override
 
virtual bool CanBeCustomAccessorDataType () const override
 
UE_API bool CanBeCalledFromPredicts () const
 
- 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
 
virtual const CNominalTypeAsNominalType () const
 
virtual EComparability GetComparability () 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
 

Static Public Member Functions

static UE_API const CTypeBaseGetOrCreateParamType (CSemanticProgram &, CTupleType::ElementArray &&ParamTypes)
 
static UE_API const CTypeBaseGetOrCreateParamType (CSemanticProgram &, CTupleType::ElementArray &&ParamTypes, int32_t FirstNamedIndex)
 
static ParamTypes AsParamTypes (CTypeBase const *const &Type)
 

Static Public Attributes

static const ETypeKind StaticTypeKind = ETypeKind::Function
 

Member Typedef Documentation

◆ ParamTypes

using uLang::CFunctionType::ParamTypes = TRangeView<CTypeBase const* const*, CTypeBase const* const*>

Constructor & Destructor Documentation

◆ CFunctionType()

uLang::CFunctionType::CFunctionType ( CSemanticProgram Program,
const CTypeBase ParamsType,
const CTypeBase ReturnType,
const SEffectSet  Effects,
TArray< const CTypeVariable * > &&  TypeVariables = {},
bool  ImplicitlySpecialized = false 
)
inline

Member Function Documentation

◆ AsCodeRecursive()

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

Implements uLang::CTypeBase.

◆ AsParamTypes()

static ParamTypes uLang::CFunctionType::AsParamTypes ( CTypeBase const *const &  Type)
inlinestatic

◆ BuildEffectAttributeCode()

void uLang::CFunctionType::BuildEffectAttributeCode ( CUTF8StringBuilder Builder) const

◆ BuildParameterBlockCode()

void uLang::CFunctionType::BuildParameterBlockCode ( CUTF8StringBuilder Builder,
TArray< const CFlowType * > &  VisitedFlowTypes,
bool  bLinkable,
ETypeStringFlag  Flag 
) const

◆ BuildTypeVariableCode() [1/2]

void uLang::CFunctionType::BuildTypeVariableCode ( CUTF8StringBuilder Builder,
ETypeStringFlag  Flag = ETypeStringFlag::Simple 
) const
inline

◆ BuildTypeVariableCode() [2/2]

void uLang::CFunctionType::BuildTypeVariableCode ( CUTF8StringBuilder Builder,
TArray< const CFlowType * > &  VisitedFlowTypes,
bool  bLinkable,
ETypeStringFlag  Flag 
) const

◆ CanBeCalledFromPredicts()

bool uLang::CFunctionType::CanBeCalledFromPredicts ( ) const

◆ CanBeCustomAccessorDataType()

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

Implements uLang::CTypeBase.

◆ GetEffects()

SEffectSet uLang::CFunctionType::GetEffects ( ) const
inline

◆ GetOrCreateParamType() [1/2]

const CTypeBase * uLang::CFunctionType::GetOrCreateParamType ( CSemanticProgram Program,
CTupleType::ElementArray &&  ParamTypes 
)
static

◆ GetOrCreateParamType() [2/2]

const CTypeBase * uLang::CFunctionType::GetOrCreateParamType ( CSemanticProgram Program,
CTupleType::ElementArray &&  ParamTypes,
int32_t  FirstNamedIndex 
)
static

◆ GetParamsType()

const CTypeBase & uLang::CFunctionType::GetParamsType ( ) const
inline

◆ GetParamTypes()

ParamTypes uLang::CFunctionType::GetParamTypes ( ) const
inline

◆ GetReturnType()

const CTypeBase & uLang::CFunctionType::GetReturnType ( ) const
inline

◆ GetTypeVariables()

const TArray< const CTypeVariable * > & uLang::CFunctionType::GetTypeVariables ( ) const
inline

◆ ImplicitlySpecialized()

bool uLang::CFunctionType::ImplicitlySpecialized ( ) const
inline

◆ IsExplicitlyCastable()

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

Implements uLang::CNormalType.

◆ IsExplicitlyConcrete()

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

Implements uLang::CNormalType.

◆ IsPersistable()

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

Returns whether this type is persistable

Implements uLang::CNormalType.

Member Data Documentation

◆ StaticTypeKind

const ETypeKind uLang::CFunctionType::StaticTypeKind = ETypeKind::Function
static

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