v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::torque::AggregateType Class Referenceabstract

#include <types.h>

Inheritance diagram for v8::internal::torque::AggregateType:
Collaboration diagram for v8::internal::torque::AggregateType:

Public Member Functions

std::string GetGeneratedTypeNameImpl () const override
 
std::string GetGeneratedTNodeTypeNameImpl () const override
 
virtual void Finalize () const =0
 
void SetFields (std::vector< Field > fields)
 
const std::vector< Field > & fields () const
 
bool HasField (const std::string &name) const
 
const FieldLookupField (const std::string &name) const
 
const std::string & name () const
 
Namespacenspace () const
 
virtual const FieldRegisterField (Field field)
 
void RegisterMethod (Method *method)
 
const std::vector< Method * > & Methods () const
 
std::vector< Method * > Methods (const std::string &name) const
 
std::vector< const AggregateType * > GetHierarchy () const
 
std::vector< TypeCheckerGetTypeCheckers () const override
 
const FieldLastField () const
 
- Public Member Functions inherited from v8::internal::torque::Type
Typeoperator= (const Type &other)=delete
 
virtual bool IsSubtypeOf (const Type *supertype) const
 
std::string ToString () const
 
virtual std::string SimpleName () const
 
std::string GetHandleTypeName (HandleKind kind, const std::string &type_name) const
 
std::string TagglifiedCppTypeName () const
 
std::string HandlifiedCppTypeName (HandleKind kind) const
 
const Typeparent () const
 
bool IsVoid () const
 
bool IsNever () const
 
bool IsBool () const
 
bool IsConstexprBool () const
 
bool IsVoidOrNever () const
 
bool IsFloat32 () const
 
bool IsFloat64 () const
 
std::string GetGeneratedTypeName () const
 
std::string GetGeneratedTNodeTypeName () const
 
virtual bool IsConstexpr () const
 
virtual bool IsTransient () const
 
virtual const TypeNonConstexprVersion () const
 
virtual std::string GetConstexprGeneratedTypeName () const
 
std::optional< const ClassType * > ClassSupertype () const
 
std::optional< const StructType * > StructSupertype () const
 
std::optional< const AggregateType * > AggregateSupertype () const
 
virtual std::string GetRuntimeType () const
 
virtual std::string GetDebugType () const
 
void AddAlias (std::string alias) const
 
size_t id () const
 
const MaybeSpecializationKeyGetSpecializedFrom () const
 
virtual void SetConstexprVersion (const Type *type) const
 
virtual const TypeConstexprVersion () const
 
virtual size_t AlignmentLog2 () const
 
- Public Member Functions inherited from v8::internal::torque::TypeBase
virtual ~TypeBase ()=default
 
bool IsTopType () const
 
bool IsAbstractType () const
 
bool IsBuiltinPointerType () const
 
bool IsUnionType () const
 
bool IsBitFieldStructType () const
 
bool IsStructType () const
 
bool IsClassType () const
 
bool IsAggregateType () const
 

Protected Member Functions

 AggregateType (Kind kind, const Type *parent, Namespace *nspace, const std::string &name, MaybeSpecializationKey specialized_from=std::nullopt)
 
void CheckForDuplicateFields () const
 
const FieldLookupFieldInternal (const std::string &name) const
 
std::string SimpleNameImpl () const override
 
- Protected Member Functions inherited from v8::internal::torque::Type
 Type (TypeBase::Kind kind, const Type *parent, MaybeSpecializationKey specialized_from=std::nullopt)
 
 Type (const Type &other) V8_NOEXCEPT
 
void set_parent (const Type *t)
 
int Depth () const
 
virtual std::string ToExplicitString () const =0
 
- Protected Member Functions inherited from v8::internal::torque::TypeBase
 TypeBase (Kind kind)
 
Kind kind () const
 

Protected Attributes

bool is_finalized_
 
std::vector< Fieldfields_
 

Private Attributes

Namespacenamespace_
 
std::string name_
 
std::vector< Method * > methods_
 

Additional Inherited Members

- Public Types inherited from v8::internal::torque::Type
enum class  HandleKind { kIndirect , kDirect }
 
- Public Types inherited from v8::internal::torque::TypeBase
enum class  Kind {
  kTopType , kAbstractType , kBuiltinPointerType , kUnionType ,
  kBitFieldStructType , kStructType , kClassType
}
 
- Static Public Member Functions inherited from v8::internal::torque::Type
static const TypeCommonSupertype (const Type *a, const Type *b)
 
static std::optional< const Type * > MatchUnaryGeneric (const Type *type, GenericType *generic)
 
static std::string ComputeName (const std::string &basename, MaybeSpecializationKey specialized_from)
 

Detailed Description

Definition at line 547 of file types.h.

Constructor & Destructor Documentation

◆ AggregateType()

v8::internal::torque::AggregateType::AggregateType ( Kind kind,
const Type * parent,
Namespace * nspace,
const std::string & name,
MaybeSpecializationKey specialized_from = std::nullopt )
inlineprotected

Definition at line 593 of file types.h.

Member Function Documentation

◆ CheckForDuplicateFields()

void v8::internal::torque::AggregateType::CheckForDuplicateFields ( ) const
protected

Definition at line 430 of file types.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fields()

const std::vector< Field > & v8::internal::torque::AggregateType::fields ( ) const
inline

Definition at line 556 of file types.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Finalize()

virtual void v8::internal::torque::AggregateType::Finalize ( ) const
pure virtual

Implemented in v8::internal::torque::ClassType, and v8::internal::torque::StructType.

Here is the caller graph for this function:

◆ GetGeneratedTNodeTypeNameImpl()

std::string v8::internal::torque::AggregateType::GetGeneratedTNodeTypeNameImpl ( ) const
inlineoverridevirtual

Implements v8::internal::torque::Type.

Reimplemented in v8::internal::torque::ClassType.

Definition at line 551 of file types.h.

Here is the call graph for this function:

◆ GetGeneratedTypeNameImpl()

std::string v8::internal::torque::AggregateType::GetGeneratedTypeNameImpl ( ) const
inlineoverridevirtual

Implements v8::internal::torque::Type.

Reimplemented in v8::internal::torque::ClassType, and v8::internal::torque::StructType.

Definition at line 550 of file types.h.

Here is the call graph for this function:

◆ GetHierarchy()

std::vector< const AggregateType * > v8::internal::torque::AggregateType::GetHierarchy ( ) const

Definition at line 459 of file types.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTypeCheckers()

std::vector< TypeChecker > v8::internal::torque::AggregateType::GetTypeCheckers ( ) const
inlineoverridevirtual

Reimplemented from v8::internal::torque::Type.

Definition at line 578 of file types.h.

◆ HasField()

bool v8::internal::torque::AggregateType::HasField ( const std::string & name) const

Definition at line 474 of file types.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LastField()

const Field & v8::internal::torque::AggregateType::LastField ( ) const
inline

Definition at line 582 of file types.h.

Here is the call graph for this function:

◆ LookupField()

const Field & v8::internal::torque::AggregateType::LookupField ( const std::string & name) const

Definition at line 499 of file types.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LookupFieldInternal()

const Field & v8::internal::torque::AggregateType::LookupFieldInternal ( const std::string & name) const
protected

Definition at line 487 of file types.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Methods() [1/2]

const std::vector< Method * > & v8::internal::torque::AggregateType::Methods ( ) const
inline

Definition at line 571 of file types.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Methods() [2/2]

std::vector< Method * > v8::internal::torque::AggregateType::Methods ( const std::string & name) const

Definition at line 586 of file types.cc.

Here is the call graph for this function:

◆ name()

const std::string & v8::internal::torque::AggregateType::name ( ) const
inline

Definition at line 562 of file types.h.

Here is the caller graph for this function:

◆ nspace()

Namespace * v8::internal::torque::AggregateType::nspace ( ) const
inline

Definition at line 563 of file types.h.

Here is the caller graph for this function:

◆ RegisterField()

virtual const Field & v8::internal::torque::AggregateType::RegisterField ( Field field)
inlinevirtual

Reimplemented in v8::internal::torque::ClassType.

Definition at line 565 of file types.h.

Here is the caller graph for this function:

◆ RegisterMethod()

void v8::internal::torque::AggregateType::RegisterMethod ( Method * method)
inline

Definition at line 570 of file types.h.

Here is the caller graph for this function:

◆ SetFields()

void v8::internal::torque::AggregateType::SetFields ( std::vector< Field > fields)
inline

Definition at line 555 of file types.h.

Here is the call graph for this function:

◆ SimpleNameImpl()

std::string v8::internal::torque::AggregateType::SimpleNameImpl ( ) const
inlineoverrideprotectedvirtual

Implements v8::internal::torque::Type.

Reimplemented in v8::internal::torque::StructType.

Definition at line 604 of file types.h.

Member Data Documentation

◆ fields_

std::vector<Field> v8::internal::torque::AggregateType::fields_
protected

Definition at line 608 of file types.h.

◆ is_finalized_

bool v8::internal::torque::AggregateType::is_finalized_
mutableprotected

Definition at line 607 of file types.h.

◆ methods_

std::vector<Method*> v8::internal::torque::AggregateType::methods_
private

Definition at line 613 of file types.h.

◆ name_

std::string v8::internal::torque::AggregateType::name_
private

Definition at line 612 of file types.h.

◆ namespace_

Namespace* v8::internal::torque::AggregateType::namespace_
private

Definition at line 611 of file types.h.


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