|
| TypeData (GlobalTypeVar header, Array< TypeVar > type_vars, Array< Constructor > constructors) |
| Constructor. More...
|
|
| TVM_DEFINE_OBJECT_REF_METHODS (TypeData, Type, TypeDataNode) |
|
| TVM_DEFINE_OBJECT_REF_METHODS (Type, ObjectRef, TypeNode) |
|
| ObjectRef ()=default |
| default constructor More...
|
|
| ObjectRef (ObjectPtr< Object > data) |
| Constructor from existing object ptr. More...
|
|
bool | same_as (const ObjectRef &other) const |
| Comparator. More...
|
|
bool | operator== (const ObjectRef &other) const |
| Comparator. More...
|
|
bool | operator!= (const ObjectRef &other) const |
| Comparator. More...
|
|
bool | operator< (const ObjectRef &other) const |
| Comparator. More...
|
|
bool | defined () const |
|
const Object * | get () const |
|
const Object * | operator-> () const |
|
bool | unique () const |
|
int | use_count () const |
|
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>> |
const ObjectType * | as () const |
| Try to downcast the internal Object to a raw pointer of a corresponding type. More...
|
|
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>> |
Optional< ObjectRefType > | as () const |
| Try to downcast the ObjectRef to a Optional<T> of the requested type. More...
|
|
Stores all data for an Algebraic Data Type (ADT).
In particular, it stores the handle (global type var) for an ADT and the constructors used to build it and is kept in the module. Note that type parameters are also indicated in the type data: this means that for any instance of an ADT, the type parameters must be indicated. That is, an ADT definition is treated as a type-level function, so an ADT handle must be wrapped in a TypeCall node that instantiates the type-level arguments. The kind checker enforces this.