#include "mlir/Tools/PDLL/AST/Types.h"
|
struct | Storage |
|
class | TypeBase |
| This class provides several utilities when defining derived type classes. More...
|
|
|
template<typename T > |
const T * | getImplAs () const |
| Return the internal storage instance of this type reinterpreted as the given derived storage type. More...
|
|
Definition at line 40 of file Types.h.
◆ Type()
mlir::pdll::ast::Type::Type |
( |
Storage * |
impl = nullptr | ) |
|
|
inline |
◆ cast()
template<typename U >
U mlir::pdll::ast::Type::cast |
( |
| ) |
const |
|
inline |
◆ dyn_cast()
template<typename U >
U mlir::pdll::ast::Type::dyn_cast |
( |
| ) |
const |
|
inline |
◆ dyn_cast_or_null()
template<typename U >
U mlir::pdll::ast::Type::dyn_cast_or_null |
( |
| ) |
const |
|
inline |
◆ getImpl()
Storage* mlir::pdll::ast::Type::getImpl |
( |
| ) |
const |
|
inline |
◆ getImplAs()
template<typename T >
const T* mlir::pdll::ast::Type::getImplAs |
( |
| ) |
const |
|
inlineprotected |
Return the internal storage instance of this type reinterpreted as the given derived storage type.
Definition at line 114 of file Types.h.
◆ getTypeID()
TypeID Type::getTypeID |
( |
| ) |
const |
◆ isa() [1/2]
template<typename U >
bool mlir::pdll::ast::Type::isa |
( |
| ) |
const |
|
inline |
Provide type casting support.
Definition at line 68 of file Types.h.
Referenced by isa().
◆ isa() [2/2]
template<typename U , typename V , typename... Others>
bool mlir::pdll::ast::Type::isa |
( |
| ) |
const |
|
inline |
◆ operator bool()
mlir::pdll::ast::Type::operator bool |
( |
| ) |
const |
|
inlineexplicit |
◆ operator!=()
bool mlir::pdll::ast::Type::operator!= |
( |
const Type & |
other | ) |
const |
|
inline |
◆ operator==()
bool mlir::pdll::ast::Type::operator== |
( |
const Type & |
other | ) |
const |
|
inline |
◆ print()
void mlir::pdll::ast::Type::print |
( |
raw_ostream & |
os | ) |
const |
◆ refineWith()
Type Type::refineWith |
( |
Type |
other | ) |
const |
Try to refine this type with the one provided.
Given two compatible types, this will return a merged type contains as much detail from the two types. For example, if refining two operation types and one contains a name, while the other doesn't, the refined type contains the name. If the two types are incompatible, null is returned.
Definition at line 33 of file Types.cpp.
The documentation for this class was generated from the following files: