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

#include <SemanticFunction.h>

+ Inheritance diagram for uLang::CFunction:

Public Member Functions

UE_API CFunction (const int32_t Index, const CSymbol &FunctionName, CScope &EnclosingScope)
 
UE_API int32_t Index () const
 
virtual CSymbol GetScopeName () const override
 
virtual const CDefinitionScopeAsDefinition () const override
 
void SetOverriddenDefinition (const CFunction &OverriddenDefinition)
 
void SetOverriddenDefinition (const CFunction *OverriddenDefinition)
 
const CFunctionGetOverriddenDefinition () const
 
const CFunctionGetBaseOverriddenDefinition () const
 
const CFunctionGetBaseCoercedOverriddenFunction () const
 
UE_API void SetSignature (SSignature &&Signature, SemanticRevision NextRevision)
 
UE_API void MapSignature (const CFunctionType &FuncType, SemanticRevision NextRevision)
 
TSPtr< CExpressionBaseGetBodyAst () const
 
UE_API TSPtr< CExprClassDefinitionGetBodyClassDefinitionAst () const
 
UE_API TSPtr< CExprInterfaceDefinitionGetBodyInterfaceDefinitionAst () const
 
TSPtr< CExpressionBaseGetReturnTypeAst () const
 
TSPtr< CExpressionBaseGetDefineeAst () const
 
CExpressionBaseGetBodyIr () const
 
UE_API CExprClassDefinitionGetBodyClassDefinitionIr () const
 
UE_API CExprInterfaceDefinitionGetBodyInterfaceDefinitionIr () const
 
CExpressionBaseGetReturnTypeIr () const
 
SemanticRevision GetRevision () const
 
SemanticRevision GetSignatureRevision () const
 
SemanticRevision GetBodyRevision () const
 
UE_API TOptional< const CClass * > GetMaybeClassScope () const
 
UE_API TOptional< const CModule * > GetMaybeModuleScope () const
 
UE_API TOptional< const CNominalType * > GetMaybeContextType () const
 
UE_API CUTF8String GetDecoratedName (uint16_t StrFlags=uint16_t(EFunctionStringFlag::QualifiedVersion2)) const
 
UE_API CUTF8String GetQualifier () const
 
void MarkCoercion (const CFunction &CoercedFrom)
 
bool IsCoercion () const
 
void MarkCoercedOverride ()
 
bool IsCoercedOverride () const
 
UE_API bool HasImplementation () const
 
UE_API bool IsNative () const
 
UE_API bool IsConstructor () const
 
void SetPrototypeDefinition (const CFunction &PrototypeDefinition)
 
const CFunctionGetPrototypeDefinition () const
 
UE_API void SetAstNode (CExprFunctionDefinition *AstNode)
 
UE_API CExprFunctionDefinitionGetAstNode () const
 
UE_API void SetIrNode (CExprFunctionDefinition *AstNode)
 
UE_API CExprFunctionDefinitionGetIrNode (bool bForce=false) const
 
virtual const CLogicalScopeDefinitionAsLogicalScopeNullable () const override
 
virtual bool IsPersistenceCompatConstraint () const override
 
virtual CCaptureScopeGetParentCaptureScope () const override
 
UE_API bool CanBeCalledFromPredicts () const
 
UE_API const CFunctionGetPredictsCoercedOriginalFunction () const
 
- 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
 
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::CLogicalScope
 CLogicalScope (EKind Kind, CScope *Parent, CSemanticProgram &Program)
 
virtual UE_API ~CLogicalScope ()
 
 CLogicalScope (const CLogicalScope &)=delete
 
 CLogicalScope (CLogicalScope &&)=delete
 
UE_API EIterateResult IterateRecurseLogicalScopes (const TFunction< EVisitResult(const CLogicalScope &)> &Functor) const
 Iterates through all the logical scopes nested inside this scope.
 
UE_API EIterateResult IterateRecurseLogicalScopes (TFunction< EVisitResult(const CLogicalScope &)> &&Functor) const
 
const TArray< TSRef< CDefinition > > & GetDefinitions () const
 
TMap< CSymbol, SmallDefinitionArray > & GetDefinitionNameMap ()
 
template<typename FilterClass >
TFilteredDefinitionRange< FilterClass > GetDefinitionsOfKind () const
 
virtual UE_API SmallDefinitionArray FindDefinitions (const CSymbol &Name, EMemberOrigin Origin=EMemberOrigin::InheritedOrOriginal, const SQualifier &Qualifier=SQualifier::Unknown(), const CAstPackage *ContextPackage=nullptr, VisitStampType VisitStamp=GenerateNewVisitStamp()) const
 
template<typename FilterClass >
FilterClass * FindFirstDefinitionOfKind (const CSymbol &Name, EMemberOrigin Origin=EMemberOrigin::InheritedOrOriginal, const SQualifier &Qualifier=SQualifier::Unknown(), const CAstPackage *ContextPackage=nullptr, VisitStampType VisitStamp=GenerateNewVisitStamp()) const
 
virtual UE_API void SetRevision (SemanticRevision Revision)
 
SemanticRevision GetRevision () const
 
ULANG_FORCEINLINE bool TryMarkVisited (VisitStampType VisitStamp) const
 
int32_t AllocateNextDefinitionOrdinal ()
 
UE_API const CDefinitionFindOverrideFor (const CDefinition &Definition) const
 Get the matching override definition in this class for the argument, if there is any.
 
virtual const CLogicalScopeAsLogicalScopeNullable () const override
 Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null.
 
virtual CLogicalScopeAsLogicalScopeNullable () override
 
UE_API SQualifier AsQualifier () const
 
void AddDefinitionToLogicalScope (TSRef< CDefinition > &&NewDefinition)
 
- Public Member Functions inherited from uLang::CScope
 CScope (EKind Kind, CScope *Parent, CSemanticProgram &Program)
 
virtual UE_API ~CScope ()
 
 CScope (const CScope &)=delete
 
 CScope (CScope &&)=delete
 
virtual const CTypeBaseScopeAsType () const
 
virtual SAccessLevel GetDefaultDefinitionAccessLevel () const
 
ULANG_FORCEINLINE EKind GetKind () const
 
ULANG_FORCEINLINE CScopeGetParentScope () const
 
UE_API CScopeGetScopeOfKind (EKind)
 
UE_API const CScopeGetScopeOfKind (EKind) const
 
UE_API CUTF8String GetScopePath (uLang::UTF8Char SeparatorChar='.', EPathMode Mode=EPathMode::Default) const
 
UE_API const CModuleGetModule () const
 
UE_API CModuleGetModule ()
 
UE_API const CModulePartGetModulePart () const
 
UE_API CModulePartGetModulePart ()
 
UE_API CAstPackageGetPackage () const
 
UE_API CAstCompilationUnitGetCompilationUnit () const
 
UE_API const CSnippetGetSnippet () const
 
UE_API CCaptureScopeGetCaptureScope ()
 
UE_API const CCaptureScopeGetCaptureScope () const
 
UE_API const TSPtr< CSymbolTable > & GetSymbols () const
 
ULANG_FORCEINLINE CSemanticProgramGetProgram () const
 
UE_API const CScopeGetParametricTypeScope () const
 If this is a parametric type, get the scope of those parameters; otherwise returns this scope.
 
UE_API const CLogicalScopeGetLogicalScope () const
 Get the innermost logical scope that is or contains this scope.
 
ULANG_FORCEINLINE CLogicalScopeGetLogicalScope ()
 
ULANG_FORCEINLINE bool IsLogicalScope () const
 
const CLogicalScopeGetEnclosingClassOrInterface () const
 
UE_API CLogicalScopeGetEnclosingClassOrInterface ()
 
UE_API bool IsSameOrChildOf (const CScope *Other) const
 
bool IsControlScope () const
 
UE_API bool IsInsideTypeScope () const
 
bool IsModuleOrSnippet () const
 
UE_API bool IsBuiltInScope () const
 
UE_API CModuleCreateModule (const CSymbol &ModuleName)
 
UE_API CClassDefinitionCreateClass (const CSymbol &ClassName, CClass *Superclass=nullptr, TArray< CInterface * > &&SuperInterfaces={}, EStructOrClass StructOrClass=EStructOrClass::Class)
 
UE_API CEnumerationCreateEnumeration (const CSymbol &EnumerationName)
 
UE_API CInterfaceCreateInterface (const CSymbol &InterfaceName, const TArray< CInterface * > &SuperInterfaces={})
 
UE_API TSRef< CFunctionCreateFunction (const CSymbol FunctionName)
 
virtual void CreateNegativeFunction (const CFunction &PositiveFunction) const
 
UE_API TSRef< CDataDefinitionCreateDataDefinition (const CSymbol VarName)
 
UE_API TSRef< CDataDefinitionCreateDataDefinition (const CSymbol VarName, const CTypeBase *Type)
 
virtual void CreateNegativeDataDefinition (const CDataDefinition &PositiveDataDefinition) const
 
UE_API TSRef< CTypeAliasCreateTypeAlias (const CSymbol Name)
 
UE_API TSRef< CTypeVariableCreateTypeVariable (const CSymbol Name, const CTypeBase *NegativeType, const CTypeBase *PositiveType)
 
UE_API TSRef< CModuleAliasCreateModuleAlias (const CSymbol Name)
 
UE_API TSRef< CScopedAccessLevelDefinitionCreateScopedAccessLevelDefinition (TOptional< CSymbol > ClassName)
 
void AddUsingScope (const CLogicalScope *UsingScope)
 
const TArray< const CLogicalScope * > & GetUsingScopes () const
 
UE_API const CDataDefinitionAddUsingInstance (const CDataDefinition *UsingContext)
 
const TArray< const CDataDefinition * > & GetUsingInstances () const
 
UE_API SResolvedDefinitionArray ResolveDefinition (const CSymbol &Name, const SQualifier &Qualifier=SQualifier::Unknown(), const CAstPackage *ContextPackage=nullptr) const
 Look for a definition in this scope and all parent scopes and aliases.
 
UE_API TSRef< CControlScopeCreateNestedControlScope ()
 
TSRef< CCaptureControlScopeCreateNestedCaptureControlScope ()
 
const TSRefArray< CControlScope > & GetNestedControlScopes () const
 
UE_API TSRef< CTypeScopeCreateNestedTypeScope ()
 
UE_API bool IsAuthoredByEpic () const
 
UE_API bool CanAccessEpicInternal () const
 
- Public Member Functions inherited from uLang::CCaptureScope
virtual ~CCaptureScope ()=default
 
bool HasEmptyTransitiveCaptures () const
 
uint32_t NumCaptures () const
 
TArray< const CDefinition * > GetCaptures () const
 
const uint32_tGetCapture (const CDefinition &Definition) const
 
void MaybeAddCapture (const CDefinition &)
 
void AddAncestorCapture (const CDefinition &Definition, const CCaptureScope &DefinitionCaptureScope)
 

Public Attributes

SSignature _Signature
 Signature - parameter interface.
 
EExtensionFieldAccessorKind _ExtensionFieldAccessorKind = EExtensionFieldAccessorKind::Function
 
const CFunctionType_NegativeType = nullptr
 
TArray< const CFunction * > _LowerIdenticalFunctions
 
bool _bIsAccessorOfSomeClassVar = false
 
- 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::Function
 

Friends

class CExprFunctionDefinition
 

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
}
 
- Public Types inherited from uLang::CScope
enum class  EKind : uint8_t {
  Program , CompatConstraintRoot , Module , ModulePart ,
  Snippet , Class , Function , ControlScope ,
  Interface , Type , Enumeration
}
 
using EPathMode = uLang::EPathMode
 
- Static Public Member Functions inherited from uLang::CAttributable
static UE_API TOptional< CUTF8StringGetAttributeTextValue (const TArray< SAttribute > &Attributes, const CClass *AttributeClass, const CSemanticProgram &Program)
 
- Static Public Member Functions inherited from uLang::CScope
static UE_API const charKindToCString (EKind Kind)
 
static UE_API void ResolvedDefnsAppend (SResolvedDefinitionArray *ResolvedDefns, const SmallDefinitionArray &Definitions)
 
static UE_API void ResolvedDefnsAppendWithContext (SResolvedDefinitionArray *ResolvedDefns, const SmallDefinitionArray &Definitions, const CDataDefinition *Context)
 
static UE_API VisitStampType GenerateNewVisitStamp ()
 Generates a new stamp id.
 
- Protected Member Functions inherited from uLang::CDefinition
void SetPrototypeDefinition (const CDefinition &PrototypeDefinition)
 
void SetAstNode (CExpressionBase *AstNode)
 
void SetIrNode (CExpressionBase *IrNode)
 
- Protected Member Functions inherited from uLang::CScope
UE_API bool CanAccess (const CDefinition &Definition, const SAccessLevel &DefinitionAccessLevel) const
 
- 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
 
- Protected Attributes inherited from uLang::CLogicalScope
SemanticRevision _CumulativeRevision = 1
 When anything in this class (methods, data members etc.) or its subclasses was last modified/deleted.
 
VisitStampType _LastVisitStamp { 0 }
 
- Protected Attributes inherited from uLang::CScope
EKind _Kind
 
CScope_Parent
 
CSemanticProgram_Program
 
TArray< const CLogicalScope * > _UsingScopes
 
TArray< const CDataDefinition * > _UsingInstances
 
TSRefArray< CControlScope_NestedControlScopes
 
TSRefArray< CTypeScope_NestedTypeScopes
 

Detailed Description

Function scope, signature and body.

All sub-expressions have their code text indexes relative to this containing context.

Constructor & Destructor Documentation

◆ CFunction()

uLang::CFunction::CFunction ( const int32_t  Index,
const CSymbol FunctionName,
CScope EnclosingScope 
)

Member Function Documentation

◆ CanBeCalledFromPredicts()

bool uLang::CFunction::CanBeCalledFromPredicts ( ) const

◆ DefinitionAsLogicalScopeNullable()

virtual const CLogicalScope * uLang::CFunction::DefinitionAsLogicalScopeNullable ( ) const
inlineoverridevirtual

Reimplemented from uLang::CDefinition.

◆ GetAstNode()

CExprFunctionDefinition * uLang::CFunction::GetAstNode ( ) const

◆ GetBaseCoercedOverriddenFunction()

const CFunction & uLang::CFunction::GetBaseCoercedOverriddenFunction ( ) const
inline

◆ GetBaseOverriddenDefinition()

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

◆ GetBodyAst()

TSPtr< CExpressionBase > uLang::CFunction::GetBodyAst ( ) const
inline

◆ GetBodyClassDefinitionAst()

Verse::TSPtr< uLang::CExprClassDefinition > uLang::CFunction::GetBodyClassDefinitionAst ( ) const

◆ GetBodyClassDefinitionIr()

CExprClassDefinition * uLang::CFunction::GetBodyClassDefinitionIr ( ) const

◆ GetBodyInterfaceDefinitionAst()

Verse::TSPtr< uLang::CExprInterfaceDefinition > uLang::CFunction::GetBodyInterfaceDefinitionAst ( ) const

◆ GetBodyInterfaceDefinitionIr()

CExprInterfaceDefinition * uLang::CFunction::GetBodyInterfaceDefinitionIr ( ) const

◆ GetBodyIr()

CExpressionBase * uLang::CFunction::GetBodyIr ( ) const
inline

◆ GetBodyRevision()

SemanticRevision uLang::CFunction::GetBodyRevision ( ) const
inline

◆ GetDecoratedName()

CUTF8String uLang::CFunction::GetDecoratedName ( uint16_t  StrFlags = uint16_t(EFunctionStringFlag::QualifiedVersion2)) const

Returns a decorated name for this function that includes its signature, for use in overloading.

◆ GetDefineeAst()

TSPtr< CExpressionBase > uLang::CFunction::GetDefineeAst ( ) const
inline

◆ GetIrNode()

CExprFunctionDefinition * uLang::CFunction::GetIrNode ( bool  bForce = false) const

◆ GetMaybeClassScope()

TOptional< const CClass * > uLang::CFunction::GetMaybeClassScope ( ) const

This is a holdover from old semantics, where functions were assumed to be a member of a class. THIS IS NO LONGER THE CASE, and we should forgo continued use of this function (we use it in the few places where this assumption still holds true).

@TODO: SOL-1567, we should never need to explicitly query for a function's class, when functions could belong to a module, interface, other function etc.

◆ GetMaybeContextType()

TOptional< const CNominalType * > uLang::CFunction::GetMaybeContextType ( ) const

◆ GetMaybeModuleScope()

TOptional< const CModule * > uLang::CFunction::GetMaybeModuleScope ( ) const

◆ GetOverriddenDefinition()

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

◆ GetParentCaptureScope()

virtual CCaptureScope * uLang::CFunction::GetParentCaptureScope ( ) const
inlineoverridevirtual

Implements uLang::CCaptureScope.

◆ GetPredictsCoercedOriginalFunction()

const CFunction * uLang::CFunction::GetPredictsCoercedOriginalFunction ( ) const

◆ GetPrototypeDefinition()

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

◆ GetQualifier()

CUTF8String uLang::CFunction::GetQualifier ( ) const

◆ GetReturnTypeAst()

TSPtr< CExpressionBase > uLang::CFunction::GetReturnTypeAst ( ) const
inline

◆ GetReturnTypeIr()

CExpressionBase * uLang::CFunction::GetReturnTypeIr ( ) const
inline

◆ GetRevision()

SemanticRevision uLang::CFunction::GetRevision ( ) const
inline

◆ GetScopeName()

virtual CSymbol uLang::CFunction::GetScopeName ( ) const
inlineoverridevirtual

Implements uLang::CScope.

◆ GetSignatureRevision()

SemanticRevision uLang::CFunction::GetSignatureRevision ( ) const
inline

◆ HasImplementation()

bool uLang::CFunction::HasImplementation ( ) const

◆ Index()

int32_t uLang::CFunction::Index ( ) const

◆ IsCoercedOverride()

bool uLang::CFunction::IsCoercedOverride ( ) const
inline

◆ IsCoercion()

bool uLang::CFunction::IsCoercion ( ) const
inline

◆ IsConstructor()

bool uLang::CFunction::IsConstructor ( ) const

◆ IsNative()

bool uLang::CFunction::IsNative ( ) const

◆ IsPersistenceCompatConstraint()

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

Implements uLang::CDefinition.

◆ MapSignature()

void uLang::CFunction::MapSignature ( const CFunctionType FuncType,
SemanticRevision  NextRevision 
)

◆ MarkCoercedOverride()

void uLang::CFunction::MarkCoercedOverride ( )
inline

◆ MarkCoercion()

void uLang::CFunction::MarkCoercion ( const CFunction CoercedFrom)
inline

◆ ScopeAsDefinition()

virtual const CDefinition * uLang::CFunction::ScopeAsDefinition ( ) const
inlineoverridevirtual

Reimplemented from uLang::CScope.

◆ SetAstNode()

void uLang::CFunction::SetAstNode ( CExprFunctionDefinition AstNode)

◆ SetIrNode()

void uLang::CFunction::SetIrNode ( CExprFunctionDefinition AstNode)

◆ SetOverriddenDefinition() [1/2]

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

◆ SetOverriddenDefinition() [2/2]

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

◆ SetPrototypeDefinition()

void uLang::CFunction::SetPrototypeDefinition ( const CFunction PrototypeDefinition)
inline

◆ SetSignature()

void uLang::CFunction::SetSignature ( SSignature &&  Signature,
SemanticRevision  NextRevision 
)

Friends And Related Symbol Documentation

◆ CExprFunctionDefinition

Member Data Documentation

◆ _bIsAccessorOfSomeClassVar

bool uLang::CFunction::_bIsAccessorOfSomeClassVar = false
mutable

◆ _ExtensionFieldAccessorKind

EExtensionFieldAccessorKind uLang::CFunction::_ExtensionFieldAccessorKind = EExtensionFieldAccessorKind::Function

◆ _LowerIdenticalFunctions

TArray<const CFunction*> uLang::CFunction::_LowerIdenticalFunctions

Functions whose types have a more precise result than this function for a given parameter type. If both this function and any of _LowerIdenticalFunctions are in the same overload set, this function should removed from the set.

◆ _NegativeType

const CFunctionType* uLang::CFunction::_NegativeType = nullptr

◆ _Signature

SSignature uLang::CFunction::_Signature

Signature - parameter interface.

◆ StaticDefinitionKind

const CDefinition::EKind uLang::CFunction::StaticDefinitionKind = CDefinition::EKind::Function
static

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