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

#include <Expression.h>

+ Inheritance diagram for uLang::CAstPackage:

Public Member Functions

 CAstPackage (const CUTF8String &Name, const CUTF8String &VersePath, const EVerseScope VerseScope, const EPackageRole Role, const uint32_t EffectiveVerseVersion, const uint32_t UploadedAtFNVersion, const bool bAllowNative, const bool bTreatDefinitionsAsImplicit, const bool bAllowExperimental)
 
virtual EAstNodeType GetNodeType () const override
 
virtual CUTF8String GetErrorDesc () const override
 
virtual void VisitChildren (SAstVisitor &Visitor) const override
 
virtual UE_API void VisitImmediates (SAstVisitor &Visitor) const override
 
UE_API bool CanSeeDefinition (const CDefinition &Definition) const
 
- Public Member Functions inherited from uLang::CAstNode
 CAstNode (EVstMappingType VstMappingType=EVstMappingType::Ast)
 
virtual UE_API ~CAstNode ()
 
virtual const CExpressionBaseAsExpression () const
 
virtual CExpressionBaseAsExpression ()
 
virtual bool MayHaveAttributes () const
 
virtual const CExprIdentifierBaseAsIdentifierBase () const
 
template<typename FunctionType >
ULANG_FORCEINLINE void VisitChildrenLambda (FunctionType &&Function) const
 
const Verse::Vst::NodeGetMappedVstNode () const
 
void SetNonReciprocalMappedVstNode (const Verse::Vst::Node *VstNode)
 
void SetIrMappedVstNode (const Verse::Vst::Node *VstNode)
 
bool IsIrNode () const
 
bool IsVstMappingReciprocal () const
 
template<typename FunctionType >
void VisitChildrenLambda (FunctionType &&Function) const
 
- 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::CMemberDefinitions
 CMemberDefinitions ()
 
 CMemberDefinitions (TArray< TSRef< CExpressionBase > > &&Members)
 
const TArray< TSRef< CExpressionBase > > & Members () const
 
void SetMembers (TArray< TSRef< CExpressionBase > > &&Members)
 
void AppendMember (TSRef< CExpressionBase > &&Member)
 
void PrependMember (TSRef< CExpressionBase > &&Member)
 
void SetMember (TSRef< CExpressionBase > &&Member, int32_t Index)
 
void VisitMembers (SAstVisitor &Visitor) const
 

Public Attributes

CUTF8String _Name
 
CUTF8String _VersePath
 
CModulePart_RootModule = nullptr
 
TArray< const CAstPackage * > _Dependencies
 
TArray< const CAstPackage * > _UsedDependencies
 
EVerseScope _VerseScope
 
EPackageRole _Role
 
uint32_t _EffectiveVerseVersion
 
uint32_t _UploadedAtFNVersion = VerseFN::UploadedAtFNVersion::Latest
 
int32_t _NumPersistentVars = 0
 
bool _bAllowNative
 
bool _bTreatModulesAsImplicit
 
bool _bAllowExperimental
 
CAstCompilationUnit_CompilationUnit = nullptr
 

Additional Inherited Members

- 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::CAstNode
EVstMappingType _VstMappingType
 
const Verse::Vst::Node_MappedVstNode {nullptr}
 

Detailed Description

Represents a package in the AST.

Constructor & Destructor Documentation

◆ CAstPackage()

uLang::CAstPackage::CAstPackage ( const CUTF8String Name,
const CUTF8String VersePath,
const EVerseScope  VerseScope,
const EPackageRole  Role,
const uint32_t  EffectiveVerseVersion,
const uint32_t  UploadedAtFNVersion,
const bool  bAllowNative,
const bool  bTreatDefinitionsAsImplicit,
const bool  bAllowExperimental 
)
inline

Member Function Documentation

◆ CanSeeDefinition()

bool uLang::CAstPackage::CanSeeDefinition ( const CDefinition Definition) const

◆ GetErrorDesc()

virtual CUTF8String uLang::CAstPackage::GetErrorDesc ( ) const
inlineoverridevirtual

Implements uLang::CAstNode.

◆ GetNodeType()

virtual EAstNodeType uLang::CAstPackage::GetNodeType ( ) const
inlineoverridevirtual

Implements uLang::CAstNode.

◆ VisitChildren()

virtual void uLang::CAstPackage::VisitChildren ( SAstVisitor Visitor) const
inlineoverridevirtual

Iterates over this AST node's direct children, calling Visitor.Visit for each child.

Reimplemented from uLang::CAstNode.

◆ VisitImmediates()

void uLang::CAstPackage::VisitImmediates ( SAstVisitor Visitor) const
overridevirtual

Iterates over this AST node's immediate fields, calling Visitor.VisitImmediate for each immediate field.

Reimplemented from uLang::CAstNode.

Member Data Documentation

◆ _bAllowExperimental

bool uLang::CAstPackage::_bAllowExperimental

◆ _bAllowNative

bool uLang::CAstPackage::_bAllowNative

◆ _bTreatModulesAsImplicit

bool uLang::CAstPackage::_bTreatModulesAsImplicit

◆ _CompilationUnit

CAstCompilationUnit* uLang::CAstPackage::_CompilationUnit = nullptr

◆ _Dependencies

TArray<const CAstPackage*> uLang::CAstPackage::_Dependencies

◆ _EffectiveVerseVersion

uint32_t uLang::CAstPackage::_EffectiveVerseVersion

◆ _Name

CUTF8String uLang::CAstPackage::_Name

◆ _NumPersistentVars

int32_t uLang::CAstPackage::_NumPersistentVars = 0

◆ _Role

EPackageRole uLang::CAstPackage::_Role

◆ _RootModule

CModulePart* uLang::CAstPackage::_RootModule = nullptr

◆ _UploadedAtFNVersion

uint32_t uLang::CAstPackage::_UploadedAtFNVersion = VerseFN::UploadedAtFNVersion::Latest

This allows us to determine when a package was uploaded for a given Fortnite release version. It is a HACK that conditionally enables/disables behaviour in the compiler in order to support previous mistakes allowed to slip through in previous Verse langauge releases but now need to be supported for backwards compatability. When we can confirm that all Fortnite packages that are currently uploaded are beyond this version being used in all instances of the codebase, this can then be removed.

◆ _UsedDependencies

TArray<const CAstPackage*> uLang::CAstPackage::_UsedDependencies

◆ _VersePath

CUTF8String uLang::CAstPackage::_VersePath

◆ _VerseScope

EVerseScope uLang::CAstPackage::_VerseScope

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