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

#include <SemanticProgram.h>

+ Inheritance diagram for uLang::CModulePart:

Public Member Functions

 CModulePart (CModule &Module, CScope *ParentScope, bool bExplicitDefinition, CSemanticProgram &Program)
 
const CModuleGetModule () const
 
CModuleGetModule ()
 
bool IsExplicitDefinition () const
 
void SetAvailableVersion (TOptional< uint64_t > InAvailableVersion)
 
const TOptional< uint64_t > & GetAvailableVersion () const
 
virtual CSymbol GetScopeName () const override
 
virtual const CTypeBaseScopeAsType () const override
 
virtual const CDefinitionScopeAsDefinition () const override
 
virtual const CLogicalScopeAsLogicalScopeNullable () const override
 Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null.
 
virtual CLogicalScopeAsLogicalScopeNullable () override
 
- 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 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::TAstNodeRef< CExprModuleDefinition >
CExprModuleDefinitionGetAstNode () const
 
CExprModuleDefinitionGetIrNode (bool bForce=false) const
 
void SetAstNode (CExprModuleDefinition *AstNode)
 
void SetIrNode (CExprModuleDefinition *IrNode)
 
- Public Member Functions inherited from uLang::CAstPackageRef
void SetAstPackage (CAstPackage *AstPackage)
 
CAstPackageGetAstPackage () const
 
void SetIrPackage (CAstPackage *IrPackage)
 
CAstPackageGetIrPackage () const
 

Additional Inherited Members

- 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::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::CScope
UE_API bool CanAccess (const CDefinition &Definition, const SAccessLevel &DefinitionAccessLevel) const
 
- 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

Semantically represents a partial module aka a module definition either via vmodule file or module macro Always is directly parented to a CModule

Constructor & Destructor Documentation

◆ CModulePart()

uLang::CModulePart::CModulePart ( CModule Module,
CScope ParentScope,
bool  bExplicitDefinition,
CSemanticProgram Program 
)
inline

Member Function Documentation

◆ AsLogicalScopeNullable() [1/2]

virtual const CLogicalScope * uLang::CModulePart::AsLogicalScopeNullable ( ) const
inlineoverridevirtual

Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null.

Reimplemented from uLang::CScope.

◆ AsLogicalScopeNullable() [2/2]

virtual CLogicalScope * uLang::CModulePart::AsLogicalScopeNullable ( )
inlineoverridevirtual

Reimplemented from uLang::CScope.

◆ GetAvailableVersion()

const TOptional< uint64_t > & uLang::CModulePart::GetAvailableVersion ( ) const
inline

◆ GetModule() [1/2]

CModule * uLang::CModulePart::GetModule ( )
inline

◆ GetModule() [2/2]

const CModule * uLang::CModulePart::GetModule ( ) const
inline

◆ GetScopeName()

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

Implements uLang::CScope.

◆ IsExplicitDefinition()

bool uLang::CModulePart::IsExplicitDefinition ( ) const
inline

◆ ScopeAsDefinition()

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

Reimplemented from uLang::CScope.

◆ ScopeAsType()

virtual const CTypeBase * uLang::CModulePart::ScopeAsType ( ) const
inlineoverridevirtual

Reimplemented from uLang::CScope.

◆ SetAvailableVersion()

void uLang::CModulePart::SetAvailableVersion ( TOptional< uint64_t InAvailableVersion)
inline

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