|
| UE_API | CClass (CClassDefinition *, CScope &EnclosingScope, CClass *Superclass=nullptr, TArray< CInterface * > &&SuperInterfaces={}, EStructOrClass=EStructOrClass::Class, SEffectSet ConstructorEffects=EffectSets::ClassAndInterfaceDefault) |
| |
| UE_API | CClass (CScope *ParentScope, CClassDefinition *, EStructOrClass, CClass *Superclass, TArray< CInterface * > &&SuperInterfaces, SEffectSet ConstructorEffects, CClass *GeneralizedClass, TArray< STypeVariableSubstitution >) |
| |
| UE_API | CClass (CClass *PositiveClass) |
| |
| UE_API const CTypeType * | GetTypeType () const |
| |
| UE_API void | SetSuperclass (CClass *SuperClass) |
| |
| bool | IsClass (const CClass &Class) const |
| | Determine if current class is the same class or a subclass of the specified Class
|
| |
| bool | IsSubclassOf (const CClass &Superclass) const |
| | Determine if current class is a subclass / descendant / child of the specified Class (and not the same class!)
|
| |
| bool | IsSuperclassOf (const CClass &Subclass) const |
| | Determine if current class is a superclass / ancestor / parent of the specified Class (and not the same class!)
|
| |
| UE_API bool | ImplementsInterface (const CInterface &Interface) const |
| | Determine if current class implements Interface
|
| |
| bool | IsStruct () const |
| | Is this class a struct?
|
| |
| bool | IsNative () const |
| |
| bool | IsNativeRepresentation () const |
| |
| UE_API bool | IsAbstract () const |
| |
| UE_API bool | IsPersistent () const |
| |
| UE_API bool | IsUnique () const |
| |
| UE_API bool | HasConcreteAttribute () const |
| | Does this class hold a concrete attribute?
|
| |
| UE_API const CClass * | FindConcreteBase () const |
| | Return first class in the inheritance chain that contains the concrete attribute or null.
|
| |
| UE_API const CClass * | FindInitialConcreteBase () const |
| | Return topmost class in the inheritance chain that contains the concrete attribute or null.
|
| |
| bool | IsExplicitlyConcrete () const override |
| | Is this class concrete either by having a concrete attribute or inheriting one.
|
| |
| UE_API bool | HasCastableAttribute () const |
| | Does this class hold a castable attribute?
|
| |
| UE_API const CNominalType * | FindExplicitlyCastableBase () const |
| | Return first class in the inheritance chain that contains the castable attribute. Otherwise null.
|
| |
| bool | IsExplicitlyCastable () const override |
| | Is this class castable either by having a castable attribute or inheriting one.
|
| |
| UE_API bool | HasFinalSuperBaseAttribute () const |
| | Does this class hold a <final_super_base> attribute?
|
| |
| UE_API bool | HasFinalSuperAttribute () const |
| | Does this class hold a <final_super> attribute?
|
| |
| virtual CSymbol | GetScopeName () const override |
| |
| virtual const CTypeBase * | ScopeAsType () const override |
| |
| virtual const CDefinition * | ScopeAsDefinition () const override |
| |
| virtual UE_API SAccessLevel | GetDefaultDefinitionAccessLevel () const override |
| |
| virtual UE_API void | CreateNegativeDataDefinition (const CDataDefinition &PositiveDataDefinition) const override |
| |
| virtual UE_API void | CreateNegativeFunction (const CFunction &PositiveFunction) const override |
| |
| 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 |
| |
| virtual UE_API CUTF8String | AsCodeRecursive (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool bLinkable, ETypeStringFlag Flag) const override |
| |
| virtual UE_API SmallDefinitionArray | FindInstanceMember (const CSymbol &Name, EMemberOrigin Origin, const SQualifier &Qualifier=SQualifier::Unknown(), const CAstPackage *ContextPackage=nullptr, VisitStampType VisitStamp=CScope::GenerateNewVisitStamp()) const override |
| |
| virtual UE_API EComparability | GetComparability () const override |
| |
| UE_API EComparability | GetComparability (VisitStampType) const |
| |
| UE_API bool | IsPersistable () const override |
| |
| virtual void | SetRevision (SemanticRevision Revision) override |
| |
| virtual bool | CanBeCustomAccessorDataType () const override |
| |
| virtual bool | CanBePredictsVarDataType () const override |
| |
| virtual const CDefinition * | Definition () const override |
| |
| template<typename TFunc > |
| void | ForEachAncestorClassOrInterface (const TFunc &Func) |
| |
| bool | HasAttributeClass (const CClass *AttributeClass, const CSemanticProgram &Program) const |
| |
| bool | HasAttributeSubclass (const CClass *AttributeClass, const CSemanticProgram &Program) const |
| |
| UE_API void | AddAttribute (SAttribute) const |
| |
| TOptional< SAttribute > | FindAttribute (const CClass *AttributeClass, const CSemanticProgram &Program) const |
| |
| bool | HasCyclesBroken () const |
| |
| bool | IsParametric () const |
| |
| CSemanticProgram & | GetProgram () const |
| |
| | CNominalType (ETypeKind Kind, CSemanticProgram &Program) |
| |
| virtual const CNominalType * | AsNominalType () const override |
| |
| | CNormalType (ETypeKind Kind, CSemanticProgram &Program) |
| |
| ETypeKind | GetKind () const |
| |
| template<typename TType > |
| TType & | AsChecked () |
| |
| template<typename TType > |
| TType const & | AsChecked () const |
| |
| template<typename TType > |
| bool | IsA () const |
| |
| template<typename TType > |
| TType * | AsNullable () |
| |
| template<typename TType > |
| TType const * | AsNullable () const |
| |
| virtual const CTypeBase * | GetReferenceValueType () const |
| |
| virtual const CTypeBase * | GetInnerType () const |
| |
| UE_API SmallDefinitionArray | FindInstanceMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier, const CAstPackage *ContextPackage=nullptr) const |
| |
| UE_API SmallDefinitionArray | FindTypeMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier) const |
| |
| virtual SmallDefinitionArray | FindTypeMember (const CSymbol &MemberName, EMemberOrigin Origin, const SQualifier &Qualifier, VisitStampType VisitStamp) const |
| |
| virtual const CNormalType & | GetNormalType () const override |
| |
| | CTypeBase (CSemanticProgram &Program) |
| |
| virtual | ~CTypeBase () |
| |
| CSemanticProgram & | GetProgram () const |
| |
| virtual CNamedType * | AsNamedType () |
| |
| virtual const CNamedType * | AsNamedType () const |
| |
| virtual CFlowType * | AsFlowType () |
| |
| virtual const CFlowType * | AsFlowType () const |
| |
| virtual const CAliasType * | AsAliasType () const |
| |
| CUTF8String | AsCode (ETypeSyntaxPrecedence OuterPrecedence=ETypeSyntaxPrecedence::Min, ETypeStringFlag Flag=ETypeStringFlag::Simple) const |
| |
| CUTF8String | AsParamsCode (ETypeSyntaxPrecedence OuterPrecedence=ETypeSyntaxPrecedence::Min, ETypeStringFlag Flag=ETypeStringFlag::Simple) const |
| |
| virtual CUTF8String | AsParamsCode (ETypeSyntaxPrecedence OuterPrecedence, TArray< const CFlowType * > &VisitedFlowTypes, bool WithColon, ETypeStringFlag Flag=ETypeStringFlag::Simple) const |
| |
| CUTF8String | AsLinkableCode () const |
| |
| | 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 |
| |
| 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 |
| |
| SemanticRevision | GetRevision () const |
| |
| ULANG_FORCEINLINE bool | TryMarkVisited (VisitStampType VisitStamp) const |
| |
| int32_t | AllocateNextDefinitionOrdinal () |
| |
| UE_API const CDefinition * | FindOverrideFor (const CDefinition &Definition) const |
| | Get the matching override definition in this class for the argument, if there is any.
|
| |
| virtual const CLogicalScope * | AsLogicalScopeNullable () const override |
| | Iff this scope is a logical scope, return it a pointer to it. Otherwise, return null.
|
| |
| virtual CLogicalScope * | AsLogicalScopeNullable () override |
| |
| UE_API SQualifier | AsQualifier () const |
| |
| void | AddDefinitionToLogicalScope (TSRef< CDefinition > &&NewDefinition) |
| |
| | CScope (EKind Kind, CScope *Parent, CSemanticProgram &Program) |
| |
| virtual UE_API | ~CScope () |
| |
| | CScope (const CScope &)=delete |
| |
| | CScope (CScope &&)=delete |
| |
| ULANG_FORCEINLINE EKind | GetKind () const |
| |
| ULANG_FORCEINLINE CScope * | GetParentScope () const |
| |
| UE_API CScope * | GetScopeOfKind (EKind) |
| |
| UE_API const CScope * | GetScopeOfKind (EKind) const |
| |
| UE_API CUTF8String | GetScopePath (uLang::UTF8Char SeparatorChar='.', EPathMode Mode=EPathMode::Default) const |
| |
| UE_API const CModule * | GetModule () const |
| |
| UE_API CModule * | GetModule () |
| |
| UE_API const CModulePart * | GetModulePart () const |
| |
| UE_API CModulePart * | GetModulePart () |
| |
| UE_API CAstPackage * | GetPackage () const |
| |
| UE_API CAstCompilationUnit * | GetCompilationUnit () const |
| |
| UE_API const CSnippet * | GetSnippet () const |
| |
| UE_API CCaptureScope * | GetCaptureScope () |
| |
| UE_API const CCaptureScope * | GetCaptureScope () const |
| |
| UE_API const TSPtr< CSymbolTable > & | GetSymbols () const |
| |
| ULANG_FORCEINLINE CSemanticProgram & | GetProgram () const |
| |
| UE_API const CScope & | GetParametricTypeScope () const |
| | If this is a parametric type, get the scope of those parameters; otherwise returns this scope.
|
| |
| UE_API const CLogicalScope & | GetLogicalScope () const |
| | Get the innermost logical scope that is or contains this scope.
|
| |
| ULANG_FORCEINLINE CLogicalScope & | GetLogicalScope () |
| |
| ULANG_FORCEINLINE bool | IsLogicalScope () const |
| |
| const CLogicalScope * | GetEnclosingClassOrInterface () const |
| |
| UE_API CLogicalScope * | GetEnclosingClassOrInterface () |
| |
| 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 CModule & | CreateModule (const CSymbol &ModuleName) |
| |
| UE_API CClassDefinition & | CreateClass (const CSymbol &ClassName, CClass *Superclass=nullptr, TArray< CInterface * > &&SuperInterfaces={}, EStructOrClass StructOrClass=EStructOrClass::Class) |
| |
| UE_API CEnumeration & | CreateEnumeration (const CSymbol &EnumerationName) |
| |
| UE_API CInterface & | CreateInterface (const CSymbol &InterfaceName, const TArray< CInterface * > &SuperInterfaces={}) |
| |
| UE_API TSRef< CFunction > | CreateFunction (const CSymbol FunctionName) |
| |
| UE_API TSRef< CDataDefinition > | CreateDataDefinition (const CSymbol VarName) |
| |
| UE_API TSRef< CDataDefinition > | CreateDataDefinition (const CSymbol VarName, const CTypeBase *Type) |
| |
| UE_API TSRef< CTypeAlias > | CreateTypeAlias (const CSymbol Name) |
| |
| UE_API TSRef< CTypeVariable > | CreateTypeVariable (const CSymbol Name, const CTypeBase *NegativeType, const CTypeBase *PositiveType) |
| |
| UE_API TSRef< CModuleAlias > | CreateModuleAlias (const CSymbol Name) |
| |
| UE_API TSRef< CScopedAccessLevelDefinition > | CreateScopedAccessLevelDefinition (TOptional< CSymbol > ClassName) |
| |
| void | AddUsingScope (const CLogicalScope *UsingScope) |
| |
| const TArray< const CLogicalScope * > & | GetUsingScopes () const |
| |
| UE_API const CDataDefinition * | AddUsingInstance (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< CControlScope > | CreateNestedControlScope () |
| |
| TSRef< CCaptureControlScope > | CreateNestedCaptureControlScope () |
| |
| const TSRefArray< CControlScope > & | GetNestedControlScopes () const |
| |
| UE_API TSRef< CTypeScope > | CreateNestedTypeScope () |
| |
| UE_API bool | IsAuthoredByEpic () const |
| |
| UE_API bool | CanAccessEpicInternal () const |
| |
Class defining a class instance / object [Might break off CStructType to differentiate stack based types.]