v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType > Class Template Reference

#include <declarable.h>

Inheritance diagram for v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >:
Collaboration diagram for v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >:

Public Types

using iterator = typename Map::const_iterator
 
- Public Types inherited from v8::internal::torque::Declarable
enum  Kind {
  kNamespace , kTorqueMacro , kExternMacro , kMethod ,
  kBuiltin , kRuntimeFunction , kIntrinsic , kGenericCallable ,
  kGenericType , kTypeAlias , kExternConstant , kNamespaceConstant
}
 

Public Member Functions

void AddSpecialization (const TypeVector &type_arguments, SpecializationType specialization)
 
std::optional< SpecializationType > GetSpecialization (const TypeVector &type_arguments) const
 
iterator begin () const
 
iterator end () const
 
const std::string & name () const
 
auto declaration () const
 
const GenericParametersgeneric_parameters () const
 
const std::vector< TypeConstraint > & Constraints ()
 
- Public Member Functions inherited from v8::internal::torque::Declarable
virtual ~Declarable ()=default
 
Kind kind () const
 
bool IsNamespace () const
 
bool IsMacro () const
 
bool IsTorqueMacro () const
 
bool IsMethod () const
 
bool IsExternMacro () const
 
bool IsIntrinsic () const
 
bool IsBuiltin () const
 
bool IsRuntimeFunction () const
 
bool IsGenericCallable () const
 
bool IsGenericType () const
 
bool IsTypeAlias () const
 
bool IsExternConstant () const
 
bool IsNamespaceConstant () const
 
bool IsValue () const
 
bool IsScope () const
 
bool IsCallable () const
 
virtual const char * type_name () const
 
ScopeParentScope () const
 
SourcePosition Position () const
 
void SetPosition (const SourcePosition &position)
 
SourcePosition IdentifierPosition () const
 
void SetIdentifierPosition (const SourcePosition &position)
 
bool IsUserDefined () const
 
void SetIsUserDefined (bool is_user_defined)
 

Protected Member Functions

 GenericDeclarable (Declarable::Kind kind, const std::string &name, DeclarationType generic_declaration)
 
- Protected Member Functions inherited from v8::internal::torque::Declarable
 Declarable (Kind kind)
 

Private Types

using Map
 

Private Attributes

std::string name_
 
DeclarationType generic_declaration_
 
Map specializations_
 
std::optional< std::vector< TypeConstraint > > constraints_
 

Detailed Description

template<class SpecializationType, class DeclarationType>
class v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >

Definition at line 583 of file declarable.h.

Member Typedef Documentation

◆ iterator

template<class SpecializationType , class DeclarationType >
using v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::iterator = typename Map::const_iterator

Definition at line 605 of file declarable.h.

◆ Map

template<class SpecializationType , class DeclarationType >
using v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::Map
private
Initial value:
std::unordered_map<TypeVector, SpecializationType,
base::hash<TypeVector>>
std::vector< const Type * > TypeVector
Definition types.h:85

Definition at line 585 of file declarable.h.

Constructor & Destructor Documentation

◆ GenericDeclarable()

template<class SpecializationType , class DeclarationType >
v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::GenericDeclarable ( Declarable::Kind kind,
const std::string & name,
DeclarationType generic_declaration )
inlineprotected

Definition at line 622 of file declarable.h.

Member Function Documentation

◆ AddSpecialization()

template<class SpecializationType , class DeclarationType >
void v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::AddSpecialization ( const TypeVector & type_arguments,
SpecializationType specialization )
inline

Definition at line 589 of file declarable.h.

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

◆ begin()

template<class SpecializationType , class DeclarationType >
iterator v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::begin ( ) const
inline

Definition at line 606 of file declarable.h.

◆ Constraints()

template<class SpecializationType , class DeclarationType >
const std::vector< TypeConstraint > & v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::Constraints ( )
inline

Definition at line 615 of file declarable.h.

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

◆ declaration()

template<class SpecializationType , class DeclarationType >
auto v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::declaration ( ) const
inline

Definition at line 610 of file declarable.h.

Here is the caller graph for this function:

◆ end()

template<class SpecializationType , class DeclarationType >
iterator v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::end ( ) const
inline

Definition at line 607 of file declarable.h.

◆ generic_parameters()

template<class SpecializationType , class DeclarationType >
const GenericParameters & v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::generic_parameters ( ) const
inline

Definition at line 611 of file declarable.h.

Here is the caller graph for this function:

◆ GetSpecialization()

template<class SpecializationType , class DeclarationType >
std::optional< SpecializationType > v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::GetSpecialization ( const TypeVector & type_arguments) const
inline

Definition at line 598 of file declarable.h.

Here is the caller graph for this function:

◆ name()

template<class SpecializationType , class DeclarationType >
const std::string & v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::name ( ) const
inline

Definition at line 609 of file declarable.h.

Here is the caller graph for this function:

Member Data Documentation

◆ constraints_

template<class SpecializationType , class DeclarationType >
std::optional<std::vector<TypeConstraint> > v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::constraints_
private

Definition at line 634 of file declarable.h.

◆ generic_declaration_

template<class SpecializationType , class DeclarationType >
DeclarationType v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::generic_declaration_
private

Definition at line 632 of file declarable.h.

◆ name_

template<class SpecializationType , class DeclarationType >
std::string v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::name_
private

Definition at line 631 of file declarable.h.

◆ specializations_

template<class SpecializationType , class DeclarationType >
Map v8::internal::torque::GenericDeclarable< SpecializationType, DeclarationType >::specializations_
private

Definition at line 633 of file declarable.h.


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