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

#include <SemanticScope.h>

+ Inheritance diagram for uLang::CLogicalScope:

Public Member Functions

 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 CSymbol GetScopeName () const =0
 
virtual const CTypeBaseScopeAsType () const
 
virtual const CDefinitionScopeAsDefinition () 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
 

Protected Attributes

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
 

Friends

class CScope
 

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
 

Detailed Description

A scope that can contain definitions

Constructor & Destructor Documentation

◆ CLogicalScope() [1/3]

uLang::CLogicalScope::CLogicalScope ( EKind  Kind,
CScope Parent,
CSemanticProgram Program 
)
inline

◆ ~CLogicalScope()

uLang::CLogicalScope::~CLogicalScope ( )
virtual

◆ CLogicalScope() [2/3]

uLang::CLogicalScope::CLogicalScope ( const CLogicalScope )
delete

◆ CLogicalScope() [3/3]

uLang::CLogicalScope::CLogicalScope ( CLogicalScope &&  )
delete

Member Function Documentation

◆ AddDefinitionToLogicalScope()

void uLang::CLogicalScope::AddDefinitionToLogicalScope ( TSRef< CDefinition > &&  NewDefinition)

◆ AllocateNextDefinitionOrdinal()

int32_t uLang::CLogicalScope::AllocateNextDefinitionOrdinal ( )
inline

◆ AsLogicalScopeNullable() [1/2]

virtual const CLogicalScope * uLang::CLogicalScope::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::CLogicalScope::AsLogicalScopeNullable ( )
inlineoverridevirtual

Reimplemented from uLang::CScope.

◆ AsQualifier()

SQualifier uLang::CLogicalScope::AsQualifier ( ) const

◆ FindDefinitions()

SmallDefinitionArray uLang::CLogicalScope::FindDefinitions ( const CSymbol Name,
EMemberOrigin  Origin = EMemberOrigin::InheritedOrOriginal,
const SQualifier Qualifier = SQualifier::Unknown(),
const CAstPackage ContextPackage = nullptr,
VisitStampType  VisitStamp = GenerateNewVisitStamp() 
) const
virtual

◆ FindFirstDefinitionOfKind()

template<typename FilterClass >
FilterClass * uLang::CLogicalScope::FindFirstDefinitionOfKind ( const CSymbol Name,
EMemberOrigin  Origin = EMemberOrigin::InheritedOrOriginal,
const SQualifier Qualifier = SQualifier::Unknown(),
const CAstPackage ContextPackage = nullptr,
VisitStampType  VisitStamp = GenerateNewVisitStamp() 
) const

◆ FindOverrideFor()

const CDefinition * uLang::CLogicalScope::FindOverrideFor ( const CDefinition Definition) const

Get the matching override definition in this class for the argument, if there is any.

◆ GetDefinitionNameMap()

TMap< CSymbol, SmallDefinitionArray > & uLang::CLogicalScope::GetDefinitionNameMap ( )
inline

◆ GetDefinitions()

const TArray< TSRef< CDefinition > > & uLang::CLogicalScope::GetDefinitions ( ) const
inline

◆ GetDefinitionsOfKind()

template<typename FilterClass >
TFilteredDefinitionRange< FilterClass > uLang::CLogicalScope::GetDefinitionsOfKind ( ) const

◆ GetRevision()

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

◆ IterateRecurseLogicalScopes() [1/2]

EIterateResult uLang::CLogicalScope::IterateRecurseLogicalScopes ( const TFunction< EVisitResult(const CLogicalScope &)> &  Functor) const

Iterates through all the logical scopes nested inside this scope.

◆ IterateRecurseLogicalScopes() [2/2]

EIterateResult uLang::CLogicalScope::IterateRecurseLogicalScopes ( TFunction< EVisitResult(const CLogicalScope &)> &&  Functor) const

◆ SetRevision()

void uLang::CLogicalScope::SetRevision ( SemanticRevision  Revision)
virtual

Reimplemented in uLang::CClass.

◆ TryMarkVisited()

ULANG_FORCEINLINE bool uLang::CLogicalScope::TryMarkVisited ( VisitStampType  VisitStamp) const
inline

Friends And Related Symbol Documentation

◆ CScope

friend class CScope
friend

Member Data Documentation

◆ _CumulativeRevision

SemanticRevision uLang::CLogicalScope::_CumulativeRevision = 1
protected

When anything in this class (methods, data members etc.) or its subclasses was last modified/deleted.

◆ _LastVisitStamp

VisitStampType uLang::CLogicalScope::_LastVisitStamp { 0 }
mutableprotected

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