sammine-lang
Loading...
Searching...
No Matches
Type Struct Reference

Public Member Functions

 operator bool () const
bool synthesized () const
 Type (TypeKind type_kind, TypeData type_data)
 Type (const Type &other)
 Type (Type &&other) noexcept
Typeoperator= (const Type &other)
Typeoperator= (Type &&other) noexcept
bool operator== (const Type &other) const
bool operator!= (const Type &other) const
bool operator< (const Type &t) const
bool operator> (const Type &t) const
std::string to_string () const
bool is_poisoned () const
bool is_literal () const
bool is_polymorphic_numeric () const
bool isTypeWrapping () const
bool containsLinear () const
template<typename F>
void forEachInnerType (F &&callback) const
 operator std::string () const

Static Public Member Functions

static Type I32_t ()
static Type I64_t ()
static Type U32_t ()
static Type U64_t ()
static Type F64_t ()
static Type Bool ()
static Type Char ()
static Type Poisoned ()
static Type Unit ()
static Type Never ()
static Type Integer ()
static Type Flt ()
static Type String (const std::string &str)
static Type NonExistent ()
static Type TypeParam (const std::string &name)
static Type Pointer (Type pointee)
static Type Array (Type element, size_t size)
static Type Struct (sammine_util::QualifiedName name, std::vector< std::string > field_names, std::vector< Type > field_types)
static Type Enum (sammine_util::QualifiedName name, std::vector< EnumType::VariantInfo > variants, bool integer_backed=false, TypeKind backing_type=TypeKind::I32_t)
static Type Tuple (std::vector< Type > element_types)
static Type Function (std::vector< Type > params, bool var_arg=false)

Public Attributes

TypeKind type_kind
TypeData type_data
bool is_mutable = false
bool is_linear = false

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