19#define UE_API VERSECOMPILER_API
82 CAstPackage* _IrPackage{
nullptr };
141 mutable bool _bPersistenceCompatConstraint{
false };
171 bool _bExplicitDefinition;
407 template<
typename DefinitionType>
413 if (!_CachedValue.
IsSet())
418 return *_CachedValue;
487#if WITH_VERSE_VM || defined(__INTELLISENSE__)
497#if WITH_VERSE_VM || defined(__INTELLISENSE__)
593 bool ImplicitlySpecialized =
false);
646 return _NumFunctions++;
657 uint32_t UploadedAtFNVersion = VerseFN::UploadedAtFNVersion::Latest)
const;
729 mutable CFunction* _taskFunction{
nullptr};
745 bool bEffectsTablePopulated{
false };
746 UE_API void PopulateEffectDescriptorTable();
748 UE_API CDefinition* FindDefinitionByVersePathInternal(CUTF8StringView VersePath)
const;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
#define ULANG_FORCEINLINE
Definition Common.h:188
#define ULANG_ASSERTF(expr, format,...)
Definition Common.h:290
Definition UnrealString.h.inl:34
Definition SemanticTypes.h:788
Definition SemanticProgram.h:73
void SetAstPackage(CAstPackage *AstPackage)
Definition SemanticProgram.h:75
CAstPackage * GetAstPackage() const
Definition SemanticProgram.h:76
CAstPackage * GetIrPackage() const
Definition SemanticProgram.h:78
void SetIrPackage(CAstPackage *IrPackage)
Definition SemanticProgram.h:77
Definition Expression.h:3494
Base class for everything that can have attributes attached to it (classes, expressions,...
Definition Attributable.h:51
Definition SemanticTypes.h:460
Definition SemanticClass.h:207
Definition SemanticClass.h:33
Definition SemanticProgram.h:259
virtual CSymbol GetScopeName() const override
Definition SemanticProgram.h:266
virtual UE_API SmallDefinitionArray FindDefinitions(const CSymbol &Name, EMemberOrigin, const SQualifier &Qualifier, const CAstPackage *ContextPackage, VisitStampType) const override
Definition SemanticProgram.cpp:216
CCompatConstraintRoot(CSemanticProgram &Program)
Definition SemanticProgram.h:261
Definition SemanticTypes.h:533
Definition DataDefinition.h:41
Definition Definition.h:131
void SetAstNode(CExpressionBase *AstNode)
Definition Definition.h:329
CExpressionBase * GetAstNode() const
Definition Definition.h:231
EKind
Definition Definition.h:135
void SetIrNode(CExpressionBase *IrNode)
Definition Definition.h:334
CExpressionBase * GetIrNode(bool bForce=false) const
Definition Definition.h:232
EOp
Definition Expression.h:1689
Definition Expression.h:2849
Definition SemanticTypes.h:1392
Definition SemanticTypes.h:1144
Definition SemanticTypes.h:1055
Definition SemanticFunction.h:75
Definition SemanticTypes.h:851
Definition SemanticClass.h:246
Definition SemanticInterface.h:151
Definition SemanticTypes.h:1357
Definition SemanticInterface.h:25
Definition SemanticProgram.h:191
CSymbol _FuncNameFloor
Definition SemanticProgram.h:230
CSymbol _OpNameSub
Definition SemanticProgram.h:212
CSymbol _OpNameEqual
Definition SemanticProgram.h:219
CSymbol _FuncNameWeakMap
Definition SemanticProgram.h:231
CSymbol _FuncNameAbs
Definition SemanticProgram.h:228
UE_API CSymbol GetArithmeticOpName(CExprBinaryArithmetic::EOp) const
Definition SemanticProgram.cpp:144
CSymbol _Inf
Definition SemanticProgram.h:238
CSymbol _MinUploadedAtFNVersion
Definition SemanticProgram.h:242
CSymbol _OpNameAdd
Definition SemanticProgram.h:211
CSymbol _FuncNameCeil
Definition SemanticProgram.h:229
CSymbol _OpNameLess
Definition SemanticProgram.h:215
UE_API CUTF8StringView StripExtensionFieldOpName(CSymbol FieldName) const
Definition SemanticProgram.cpp:191
CSymbol _OpNameNegate
Definition SemanticProgram.h:210
CSymbol _OpNameSubRMW
Definition SemanticProgram.h:222
UE_API bool IsOperatorOpName(CSymbol) const
Definition SemanticProgram.cpp:198
CSymbol _FuncNameFitsInPlayerMap
Definition SemanticProgram.h:232
CSymbol _OpNameMulRMW
Definition SemanticProgram.h:223
CSymbol _OpNameDivRMW
Definition SemanticProgram.h:224
CSymbol _OpNameCall
Definition SemanticProgram.h:225
UE_API bool IsPostfixOpName(CSymbol) const
Definition SemanticProgram.cpp:210
CSymbol _OpNameMul
Definition SemanticProgram.h:213
CSymbol _Wildcard
Definition SemanticProgram.h:236
UE_API CSymbol GetComparisonOpName(CExprComparison::EOp) const
Definition SemanticProgram.cpp:156
CSymbol _NaN
Definition SemanticProgram.h:239
CSymbol _OpNameGreater
Definition SemanticProgram.h:217
CSymbol _OpNameNotEqual
Definition SemanticProgram.h:220
CSymbol _OpNameQuery
Definition SemanticProgram.h:226
CSymbol _OpNameDiv
Definition SemanticProgram.h:214
CSymbol _OpNameGreaterEqual
Definition SemanticProgram.h:218
CSymbol _VersePath
Definition SemanticProgram.h:244
UE_API CUTF8String MakeExtensionFieldOpName(CSymbol FieldName) const
Definition SemanticProgram.cpp:182
CSymbol _OpNameAddRMW
Definition SemanticProgram.h:221
CSymbol _OpNameLessEqual
Definition SemanticProgram.h:216
UE_API bool IsPrefixOpName(CSymbol) const
Definition SemanticProgram.cpp:204
UE_API CSymbol GetAssignmentOpName(CExprAssignment::EOp) const
Definition SemanticProgram.cpp:170
CSymbol _FieldNameLength
Definition SemanticProgram.h:234
Definition SemanticScope.h:242
SemanticRevision GetRevision() const
Definition SemanticScope.h:278
Definition SemanticTypes.h:880
Definition SemanticProgram.h:150
void SetAvailableVersion(TOptional< uint64_t > InAvailableVersion)
Definition SemanticProgram.h:158
const TOptional< uint64_t > & GetAvailableVersion() const
Definition SemanticProgram.h:159
CModulePart(CModule &Module, CScope *ParentScope, bool bExplicitDefinition, CSemanticProgram &Program)
Definition SemanticProgram.h:152
virtual const CTypeBase * ScopeAsType() const override
Definition SemanticProgram.h:163
virtual CSymbol GetScopeName() const override
Definition SemanticProgram.h:162
virtual CLogicalScope * AsLogicalScopeNullable() override
Definition SemanticProgram.h:167
virtual const CDefinition * ScopeAsDefinition() const override
Definition SemanticProgram.h:164
CModule * GetModule()
Definition SemanticProgram.h:156
virtual const CLogicalScope * AsLogicalScopeNullable() const override
Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null.
Definition SemanticProgram.h:166
bool IsExplicitDefinition() const
Definition SemanticProgram.h:157
const CModule * GetModule() const
Definition SemanticProgram.h:155
Definition SemanticProgram.h:89
virtual bool IsExplicitlyCastable() const override
Definition SemanticProgram.h:119
CExprModuleDefinition * GetIrNode(bool bForce=false) const
Definition SemanticProgram.h:131
CExprModuleDefinition * GetAstNode() const
Definition SemanticProgram.h:129
virtual bool IsPersistenceCompatConstraint() const override
Definition SemanticProgram.h:135
UE_API void MarkPersistenceCompatConstraint() const
Definition SemanticProgram.cpp:58
static const CDefinition::EKind StaticDefinitionKind
Definition SemanticProgram.h:92
void SetAstNode(CExprModuleDefinition *AstNode)
Definition SemanticProgram.h:128
virtual bool CanBeCustomAccessorDataType() const override
Definition SemanticProgram.h:121
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 override
Definition SemanticProgram.cpp:74
virtual bool IsExplicitlyConcrete() const override
Definition SemanticProgram.h:120
virtual const CTypeBase * ScopeAsType() const override
Definition SemanticProgram.h:105
virtual const CDefinition * Definition() const override
Definition SemanticProgram.h:124
virtual CSymbol GetScopeName() const override
Definition SemanticProgram.h:104
UE_API bool IsExplicitDefinition() const
Definition SemanticProgram.cpp:35
virtual const CDefinition * ScopeAsDefinition() const override
Definition SemanticProgram.h:106
virtual const CLogicalScope * DefinitionAsLogicalScopeNullable() const override
Definition SemanticProgram.h:127
virtual UE_API SmallDefinitionArray FindInstanceMember(const CSymbol &Name, EMemberOrigin Origin, const SQualifier &Qualifier, const CAstPackage *ContextPackage=nullptr, VisitStampType VisitStamp=CScope::GenerateNewVisitStamp()) const override
Definition SemanticProgram.cpp:49
UE_API CModulePart & CreatePart(CScope *ParentScope, bool bExplicitDefinition)
Definition SemanticProgram.cpp:30
static const ETypeKind StaticTypeKind
Definition SemanticProgram.h:91
bool HasParts() const
Definition SemanticProgram.h:98
TUPtrArrayG< CModulePart, false, TInlineElementAllocator< 1 > > PartArray
Definition SemanticProgram.h:93
const PartArray & GetParts() const
Definition SemanticProgram.h:99
void SetIrNode(CExprModuleDefinition *AstNode)
Definition SemanticProgram.h:130
virtual bool IsPersistable() const override
Definition SemanticProgram.h:118
Definition SemanticTypes.h:1269
ULANG_FORCEINLINE const CSymbol & GetName() const
Definition Named.h:41
Class defining instance and class objects.
Definition SemanticTypes.h:608
Definition SemanticTypes.h:760
Definition SemanticTypes.h:685
Definition SemanticTypes.h:712
Definition SemanticScope.h:73
UE_API const TSPtr< CSymbolTable > & GetSymbols() const
Definition SemanticScope.cpp:248
EKind
Definition SemanticScope.h:76
static UE_API VisitStampType GenerateNewVisitStamp()
Generates a new stamp id.
Definition SemanticScope.cpp:562
Definition SemanticProgram.h:277
UE_API CMapType & GetOrCreateMapType(const CTypeBase *KeyType, const CTypeBase *ValueType)
Definition SemanticProgram.cpp:357
TSPtr< CCompatConstraintRoot > _PersistenceSoftCompatConstraintRoot
Definition SemanticProgram.h:284
CClass * _uniqueClass
Definition SemanticProgram.h:339
CClass * _openClass
Definition SemanticProgram.h:358
TCachedIntrinsicDefinition< CClassDefinition > _doc_attribute
Definition SemanticProgram.h:432
CFunction * _WeakMapCallOp
Definition SemanticProgram.h:495
CClass * _attributeScopeExpression
Definition SemanticProgram.h:392
CClass * _allocatesClass
Definition SemanticProgram.h:355
CClass * _attributeScopeEnum
Definition SemanticProgram.h:387
CConcreteType & GetOrCreateConcreteType(const CTypeBase &SuperType)
Definition SemanticProgram.cpp:456
CFunction * _MapConcatenateMaps
Definition SemanticProgram.h:493
CFunction * _PredictsGetDataValue
Definition SemanticProgram.h:515
CClass * _attributeScopeData
Definition SemanticProgram.h:385
CClass * _writesClass
Definition SemanticProgram.h:354
CFunction * _ComparableNotEqualOp
Definition SemanticProgram.h:442
CFunction * _FloatDivideOp
Definition SemanticProgram.h:467
CTypeAlias * _logicAlias
Definition SemanticProgram.h:317
CClass * _moduleScopedVarWeakMapKeyClass
Definition SemanticProgram.h:373
CFunction * _PredictsGetDataRef
Definition SemanticProgram.h:516
CAnyType _anyType
Definition SemanticProgram.h:296
CFunction * _IntNegateOp
Definition SemanticProgram.h:444
CTypeAlias * _char8Alias
Definition SemanticProgram.h:321
CComparableType _comparableType
Definition SemanticProgram.h:297
CFunction * _IntGreaterEqualOp
Definition SemanticProgram.h:455
CFlowType & CreateNegativeFlowType()
Definition SemanticProgram.h:600
CFunction * _FloatGreaterEqualOp
Definition SemanticProgram.h:478
TCachedIntrinsicDefinition< CClassDefinition > _import_as_attribute
Definition SemanticProgram.h:429
TSPtr< CAstProject > & GetIrProject()
Definition SemanticProgram.h:534
CFunction * _Setter
Definition SemanticProgram.h:512
CTupleType _EmptyTupleType
Definition SemanticProgram.h:305
CTypeAlias * _char32Alias
Definition SemanticProgram.h:322
CClass * _customAttributeHandler
Definition SemanticProgram.h:402
CClass * _attributeScopeEnumerator
Definition SemanticProgram.h:388
CFunction * _MapRefCallOp
Definition SemanticProgram.h:491
friend class CDefinition
Definition SemanticProgram.h:671
CTypeAlias * _stringAlias
Definition SemanticProgram.h:323
TCachedIntrinsicDefinition< CClassDefinition > _replicated
Definition SemanticProgram.h:438
CFunction * _WeakMapOp
Definition SemanticProgram.h:500
CFunction * _IntAddAssignOp
Definition SemanticProgram.h:449
const CTypeType * _typeType
Definition SemanticProgram.h:308
UE_API CSnippet * FindSnippet(const CUTF8StringView &NameStr) const
Definition SemanticProgram.cpp:318
CClass * _attributeScopeStruct
Definition SemanticProgram.h:384
CClass * _privateClass
Definition SemanticProgram.h:362
virtual CSymbol GetScopeName() const override
Definition SemanticProgram.h:641
TSet< CClassDefinition * > _PredictsClasses
Definition SemanticProgram.h:525
CFunction * _IntAbs
Definition SemanticProgram.h:452
CClass * _ignore_unreachable
Definition SemanticProgram.h:368
CClass * _nativeCallClass
Definition SemanticProgram.h:342
UE_API CTypeType & GetOrCreateSubtypeType(const CTypeBase *PositiveType)
Definition SemanticProgram.cpp:437
ULANG_FORCEINLINE CSemanticProgram()
Definition SemanticProgram.h:539
CClass * _experimentalClass
Definition SemanticProgram.h:370
CClass * _attributeScopeModule
Definition SemanticProgram.h:382
CFalseType _falseType
Definition SemanticProgram.h:293
UE_API CFlowType & CreateFlowType(ETypePolarity)
Definition SemanticProgram.cpp:573
void SetIrProject(const TSPtr< CAstProject > &project)
Definition SemanticProgram.h:535
CTypeAlias * _voidAlias
Definition SemanticProgram.h:314
UE_API CTupleType & GetOrCreateTupleType(CTupleType::ElementArray &&Elements)
Definition SemanticProgram.cpp:470
UE_API void AddStandardAccessLevelAttributes(CAttributable *NewAccessLevel) const
Definition SemanticProgram.cpp:641
CClass * _finalClass
Definition SemanticProgram.h:337
CFunction * _FloatMultiplyAssignOp
Definition SemanticProgram.h:470
CTypeAlias * _anyAlias
Definition SemanticProgram.h:315
CFlowType & CreatePositiveFlowType()
Definition SemanticProgram.h:601
CClass * _intrinsicClass
Definition SemanticProgram.h:340
CClass * _attributeScopeEffect
Definition SemanticProgram.h:399
UE_API CInstantiatedInterface & CreateInstantiatedInterface(const CInterface &, ETypePolarity, TArray< STypeVariableSubstitution >)
Definition SemanticProgram.cpp:598
CFunction * _ComparableEqualOp
Definition SemanticProgram.h:441
const CUnknownType * GetDefaultUnknownType() const
Definition SemanticProgram.h:623
CClass * _attributeClass
Definition SemanticProgram.h:335
TSPtr< CCompatConstraintRoot > _GeneralCompatConstraintRoot
Definition SemanticProgram.h:282
CFunction * _FloatMultiplyIntOp
Definition SemanticProgram.h:475
ULANG_FORCEINLINE ~CSemanticProgram()
Definition SemanticProgram.h:542
CClass * _setterClass
Definition SemanticProgram.h:377
CFunction * _LogicQueryOp
Definition SemanticProgram.h:502
UE_API CArrayType & GetOrCreateArrayType(const CTypeBase *ElementType)
Definition SemanticProgram.cpp:331
CClass * _attributeScopeClass
Definition SemanticProgram.h:383
CPathType _pathType
Definition SemanticProgram.h:303
CClass * _abstractClass
Definition SemanticProgram.h:336
CClass * _scopedClass
Definition SemanticProgram.h:365
UE_API TOptional< TArray< const CClass * > > ConvertEffectSetToEffectClasses(const SEffectSet &EffectSet, const SEffectSet &DefaultEffectSet) const
Definition SemanticProgram.cpp:1968
CClass * _persistableClass
Definition SemanticProgram.h:372
CClass * _localizes
Definition SemanticProgram.h:367
CFunction * _FloatDivideAssignOp
Definition SemanticProgram.h:471
UE_API CSnippet & GetOrCreateSnippet(const CSymbol &Path, CScope *ParentScope)
Definition SemanticProgram.cpp:302
CFunction * _ArrayAddOp
Definition SemanticProgram.h:482
CClass * _deprecatedClass
Definition SemanticProgram.h:369
UE_API const CClassDefinition * GetLeaderboardClassDefinition() const
Definition SemanticProgram.cpp:293
CClass * _protectedClass
Definition SemanticProgram.h:363
CDataDefinition * _NaNDefinition
Definition SemanticProgram.h:509
CFunction * _RationalCeil
Definition SemanticProgram.h:460
TCachedIntrinsicDefinition< CClassDefinition > _editable_non_concrete
Definition SemanticProgram.h:427
CFunction * _FloatAddAssignOp
Definition SemanticProgram.h:468
UE_API COptionType & GetOrCreateOptionType(const CTypeBase *ValueType)
Definition SemanticProgram.cpp:409
CFunction * _FloatMultiplyOp
Definition SemanticProgram.h:466
CFunction * _FloatGreaterOp
Definition SemanticProgram.h:477
CIntrinsicSymbols _IntrinsicSymbols
Definition SemanticProgram.h:519
CClass * _persistentClass
Definition SemanticProgram.h:371
CFunction * _RationalFloor
Definition SemanticProgram.h:461
TSPtr< CCompatConstraintRoot > _PersistenceCompatConstraintRoot
Definition SemanticProgram.h:283
int32_t NextFunctionIndex()
Definition SemanticProgram.h:644
UE_API CPointerType & GetOrCreatePointerType(const CTypeBase *NegativeValueType, const CTypeBase *PositiveValueType)
Definition SemanticProgram.cpp:381
CClass * _attributeScopeEnumMacro
Definition SemanticProgram.h:396
CTypeAlias * _intAlias
Definition SemanticProgram.h:318
CFunction * _FloatAbs
Definition SemanticProgram.h:472
ULANG_FORCEINLINE const TSPtr< CSymbolTable > & GetSymbols() const
Definition SemanticProgram.h:554
TSPtr< CAstPackage > _BuiltInPackage
Definition SemanticProgram.h:287
CClass * _transactsClass
Definition SemanticProgram.h:352
UE_API TOptional< SEffectSet > ConvertEffectClassesToEffectSet(const TArray< const CClass * > &EffectClasses, const SEffectSet &DefaultEffectSet, SConvertEffectClassesToEffectSetError *OutError=nullptr, uint32_t UploadedAtFNVersion=VerseFN::UploadedAtFNVersion::Latest) const
Definition SemanticProgram.cpp:1903
CClass * _attributeScopeInterface
Definition SemanticProgram.h:390
CClass * _finalSuperBaseClass
Definition SemanticProgram.h:345
UE_API const CIntType & GetOrCreateConstrainedIntType(FIntOrNegativeInfinity Min, FIntOrPositiveInfinity Max)
Definition SemanticProgram.cpp:545
CClass * _finalSuperClass
Definition SemanticProgram.h:344
CFunction * _IntMultiplyFloatOp
Definition SemanticProgram.h:474
T * FindDefinitionByVersePath(CUTF8StringView VersePath) const
Definition SemanticProgram.h:627
TArray< CUTF8String > _EpicInternalModulePrefixes
Definition SemanticProgram.h:521
CClass * _decidesClass
Definition SemanticProgram.h:348
CTypeAlias * _rationalAlias
Definition SemanticProgram.h:319
CTypeAlias * _comparableAlias
Definition SemanticProgram.h:316
CClass * _vmNoEffectToken
Definition SemanticProgram.h:375
CFunction * _MapLength
Definition SemanticProgram.h:492
CClass * _attributeScopeIdentifier
Definition SemanticProgram.h:391
CClass * _attributeScopeFunction
Definition SemanticProgram.h:386
CPersistableType _persistableType
Definition SemanticProgram.h:298
UE_API const CFunctionType & GetOrCreateFunctionType(const CTypeBase &ParamsType, const CTypeBase &ReturnType, SEffectSet Effects=EffectSets::FunctionDefault, TArray< const CTypeVariable * > TypeVariables={}, bool ImplicitlySpecialized=false)
Definition SemanticProgram.cpp:519
CFunction * _FloatSubtractAssignOp
Definition SemanticProgram.h:469
CClass * _internalClass
Definition SemanticProgram.h:364
UE_API SExplicitTypeParam CreateExplicitTypeParam(CFunction *, CSymbol DataName, CSymbol TypeName, CSymbol NegativeTypeName, const CTypeType *Type)
Definition SemanticProgram.cpp:604
CFunction * _IntDivideOp
Definition SemanticProgram.h:448
CClass * _readsClass
Definition SemanticProgram.h:353
TCachedIntrinsicDefinition< CFunction > _import_as
Definition SemanticProgram.h:430
CFunction * _WeakMapRefCallOp0
Definition SemanticProgram.h:496
CClass * _rtfmAlwaysOpen
Definition SemanticProgram.h:374
CClass * _attributeScopeTypeDefinition
Definition SemanticProgram.h:400
CFunction * _ArrayCallOp
Definition SemanticProgram.h:485
CFunction * _IntSubtractAssignOp
Definition SemanticProgram.h:450
CClass * _attributeScopeInterfaceMacro
Definition SemanticProgram.h:395
CFunction * _IntLessOp
Definition SemanticProgram.h:456
UE_API const CFunction * GetTaskFunction() const
Definition SemanticProgram.cpp:250
UE_API const SSymbolDefinitionArray * GetDefinitionsBySymbol(CSymbol Symbol) const
Definition SemanticProgram.cpp:2038
CFunction * _FloatNegateOp
Definition SemanticProgram.h:463
TCachedIntrinsicDefinition< CClassDefinition > _message_class
Definition SemanticProgram.h:434
const TArray< const CClass * > & GetAllEffectClasses() const
Definition SemanticProgram.h:651
CDataDefinition * _InfDefinition
Definition SemanticProgram.h:508
UE_API CNamedType & GetOrCreateNamedType(CSymbol Name, const CTypeBase *ValueType, bool HasValue)
Definition SemanticProgram.cpp:503
CClass * _concreteClass
Definition SemanticProgram.h:338
CRangeType _rangeType
Definition SemanticProgram.h:304
CFunction * _FitsInPlayerMap
Definition SemanticProgram.h:506
UE_API const CTypeBase * InstantiateTaskType(const CTypeBase *TypeArgument)
Definition SemanticProgram.cpp:271
CClass * _publicClass
Definition SemanticProgram.h:361
CFunction * _ArrayAddAssignOp
Definition SemanticProgram.h:483
CClass * _suspendsClass
Definition SemanticProgram.h:347
CClass * _constructorClass
Definition SemanticProgram.h:357
UE_API CReferenceType & GetOrCreateReferenceType(const CTypeBase *NegativeValueType, const CTypeBase *PositiveValueType)
Definition SemanticProgram.cpp:395
CClass * _nativeClass
Definition SemanticProgram.h:341
CTypeAlias * _floatAlias
Definition SemanticProgram.h:320
CFunction * _ArrayLength
Definition SemanticProgram.h:484
CFunction * _IntMultiplyAssignOp
Definition SemanticProgram.h:451
CClass * _getterClass
Definition SemanticProgram.h:376
CTypeAlias * _trueAlias
Definition SemanticProgram.h:313
UE_API CTypeType & GetOrCreateTypeType(const CTypeBase *NegativeType, const CTypeBase *PositiveType)
Definition SemanticProgram.cpp:422
CFunction * _FloatAddOp
Definition SemanticProgram.h:464
UE_API CInstantiatedClass & CreateInstantiatedClass(const CClass &, ETypePolarity, TArray< STypeVariableSubstitution >)
Definition SemanticProgram.cpp:592
CClass * _overrideClass
Definition SemanticProgram.h:360
CFunction * _OptionQueryOp
Definition SemanticProgram.h:504
TCachedIntrinsicDefinition< CClassDefinition > _editable
Definition SemanticProgram.h:426
CClass * _attributeScopeAttributeClass
Definition SemanticProgram.h:389
CFunction * _IntAddOp
Definition SemanticProgram.h:445
UE_API const CFloatType & GetOrCreateConstrainedFloatType(double Min, double Max)
Definition SemanticProgram.cpp:558
CFunction * _IntLessEqualOp
Definition SemanticProgram.h:457
CFunction * _UnsafeCast
Definition SemanticProgram.h:513
CClass * _attributeScopeName
Definition SemanticProgram.h:398
CClass * _castableClass
Definition SemanticProgram.h:343
CFunction * _IntMultiplyOp
Definition SemanticProgram.h:447
CChar8Type _char8Type
Definition SemanticProgram.h:301
CClass * _attributeScopeClassMacro
Definition SemanticProgram.h:393
CTypeAlias * _typeAlias
Definition SemanticProgram.h:324
CTypeAlias * _falseAlias
Definition SemanticProgram.h:312
CClass * _attributeScopeStructMacro
Definition SemanticProgram.h:394
CClass * _epicInternalClass
Definition SemanticProgram.h:366
CFunction * _FloatSubtractOp
Definition SemanticProgram.h:465
UE_API CGeneratorType & GetOrCreateGeneratorType(const CTypeBase *ElementType)
Definition SemanticProgram.cpp:344
TCachedIntrinsicDefinition< CClassDefinition > _agent_class
Definition SemanticProgram.h:436
CClass * _computesClass
Definition SemanticProgram.h:350
CClass * _attributeScopeAttribute
Definition SemanticProgram.h:380
CClass * _attributeScopeVar
Definition SemanticProgram.h:397
CClass * _predictsClass
Definition SemanticProgram.h:378
CChar32Type _char32Type
Definition SemanticProgram.h:302
CFunction * _ArrayRefCallOp0
Definition SemanticProgram.h:486
const CIntType * _intType
Definition SemanticProgram.h:309
CClass * _convergesClass
Definition SemanticProgram.h:351
CClass * _attributeScopeScopedDefinition
Definition SemanticProgram.h:401
CClass * _closedClass
Definition SemanticProgram.h:359
const CFloatType * _floatType
Definition SemanticProgram.h:310
SemanticRevision GetNextRevision() const
Get next revision to use when creating new functions etc.
Definition SemanticProgram.h:634
TSPtr< CAstProject > _AstProject
Definition SemanticProgram.h:523
CFunction * _FloatLessEqualOp
Definition SemanticProgram.h:480
CTrueType _trueType
Definition SemanticProgram.h:294
CFunction * _FloatLessOp
Definition SemanticProgram.h:479
UE_API const SEffectDescriptor & FindEffectDescriptorChecked(const CClass *effectKey, uint32_t UploadedAtFNVersion=VerseFN::UploadedAtFNVersion::Latest) const
Definition SemanticProgram.cpp:1894
CFunction * _MakeRationalFromInt
Definition SemanticProgram.h:459
CRationalType _rationalType
Definition SemanticProgram.h:300
UE_API CMapType & GetOrCreateWeakMapType(const CTypeBase &KeyType, const CTypeBase &ValueType)
Definition SemanticProgram.cpp:364
UE_API const CClass * GetTaskClass() const
Definition SemanticProgram.cpp:259
CFunction * _IntGreaterOp
Definition SemanticProgram.h:454
CClass * _attributeScopeSpecifier
Definition SemanticProgram.h:381
CModule * _VerseModule
Definition SemanticProgram.h:290
CClass * _availableClass
Definition SemanticProgram.h:404
UE_API void PopulateCoreAPI()
Add common classes and bindings.
Definition SemanticProgram.cpp:663
CVoidType _voidType
Definition SemanticProgram.h:295
CLogicType _logicType
Definition SemanticProgram.h:299
CFunction * _Getter
Definition SemanticProgram.h:511
CFunction * _IntSubtractOp
Definition SemanticProgram.h:446
CClass * _variesClassDeprecated
Definition SemanticProgram.h:349
CCastableType & GetOrCreateCastableType(const CTypeBase &SuperType)
Definition SemanticProgram.cpp:442
Definition SharedPointer.h:28
Definition SemanticProgram.h:179
virtual CSymbol GetScopeName() const override
Definition SemanticProgram.h:184
CSnippet(const CSymbol &Path, CScope *ParentScope, CSemanticProgram &Program)
Definition SemanticProgram.h:181
Database keeping track of symbols and their text equivalent.
Definition Symbol.h:27
Symbol representing a text string with an associated id.
Definition Symbol.h:98
Definition SemanticTypes.h:1008
Definition TypeAlias.h:55
Base class for all types.
Definition SemanticTypes.h:138
Definition SemanticTypes.h:381
Definition TypeVariable.h:21
Definition UTF8StringView.h:15
Definition UnknownType.h:20
Definition Definition.h:113
Definition SharedPointer.h:77
ULANG_FORCEINLINE void Reset()
Definition SharedPointer.h:113
ULANG_FORCEINLINE bool IsFilled() const
Definition UniquePointerArray.h:137
Definition UniquePointer.h:15
Definition UniquePointerSet.h:18
Definition VVMEngineEnvironment.h:23
TIntOrInfinity< EInfinitySign::Negative > FIntOrNegativeInfinity
Definition IntOrInfinity.h:77
constexpr uint32_t HashCombineFast(uint32_t A, uint32_t B)
Definition HashTraits.h:40
uint32_t VisitStampType
Used to mark scopes already visited during a search.
Definition VisitStamp.h:11
ETypePolarity
Definition SemanticTypes.h:1131
ETypeKind
Definition SemanticTypes.h:92
uint32_t SemanticRevision
For storing revisions of functions, classes etc.
Definition Revision.h:11
ULANG_FORCEINLINE uint32_t GetTypeHash(const TArray< T > Array)
Definition Array.h:2132
EMemberOrigin
Specifies whether to find only member definitions originating in the current type,...
Definition MemberOrigin.h:10
TIntOrInfinity< EInfinitySign::Positive > FIntOrPositiveInfinity
Definition IntOrInfinity.h:78
EOp
Definition VstNode.h:1173
op
Definition VstNode.h:1321
Definition VstNode.h:1131
TNodeType * AsNullable()
Definition VstNode.h:211
Definition SemanticProgram.h:608
CTypeVariable * NegativeTypeVariable
Definition SemanticProgram.h:611
CDataDefinition * DataDefinition
Definition SemanticProgram.h:609
CTypeVariable * TypeVariable
Definition SemanticProgram.h:610
Definition SemanticProgram.h:409
TCachedIntrinsicDefinition(CSemanticProgram &Program, CUTF8StringView Path)
Definition SemanticProgram.h:410
DefinitionType * Get() const
Definition SemanticProgram.h:411
Definition SemanticProgram.h:41
bool operator==(const SCachedEffectSetToEffectClassesKey &Other) const
Definition SemanticProgram.h:45
SEffectSet TargetEffects
Definition SemanticProgram.h:42
SEffectSet Default
Definition SemanticProgram.h:43
Definition SemanticProgram.h:54
const CClass * First
Definition SemanticProgram.h:55
const CClass * Second
Definition SemanticProgram.h:56
Definition SemanticProgram.h:52
TArray< SMutuallyExclusiveEffectClassPair > InvalidPairs
Definition SemanticProgram.h:59
SEffectSet ResultSet
Definition SemanticProgram.h:60
Definition SemanticProgram.h:35
const CClass * Class
Definition SemanticProgram.h:37
SEffectSet Effects
Definition SemanticProgram.h:36
Definition SemanticProgram.h:27
bool _AllowInDecomposition
Definition SemanticProgram.h:31
SEffectSet _EffectSet
Definition SemanticProgram.h:28
SEffectSet _RescindFromDefault
Definition SemanticProgram.h:29
uLang::TArray< const CClass * > _MutualExclusions
Definition SemanticProgram.h:30
Information about a given qualifier.
Definition Definition.h:35
static SQualifier Unknown()
Definition Definition.h:81
ULANG_FORCEINLINE bool IsSet() const
Definition Optional.h:161