Yume
Namespaces | Classes | Enumerations | Functions
yume::ty Namespace Reference

Namespaces

namespace  detail
 

Classes

class  BaseType
 Represents a type in the type system. NOTE: that this isn't the class to use for type introspection, for that, Type should be used instead as it is fully qualified. More...
 
struct  Compat
 The compatibility between two types, for overload selection. More...
 
struct  Conv
 
class  Function
 A function pointer type. More...
 
class  Generic
 An unsubstituted generic type variable, usually something like T. More...
 
class  Int
 A built-in integral type, such as I32 or Bool. More...
 
class  Meta
 A metatype, that is, a type referring to a type. More...
 
class  Nil
 The null type, Nil. More...
 
class  OpaqueSelf
 The "self" type of abstract or overriding functions. An extra layer of indirection is introduced for type erasure. More...
 
class  Ptr
 A "qualified" type, with a stackable qualifier, i.e. ptr. More...
 
class  Struct
 An user-defined struct type with associated fields. More...
 
class  Type
 A "qualified" type, with a non-stackable qualifier, i.e. mut. More...
 

Enumerations

enum  Kind {
  K_Unknown , K_Int , K_Nil , K_Ptr ,
  K_Struct , K_Function , K_Generic , K_OpaqueSelf ,
  K_Meta
}
 

Functions

static auto qual_suffix (Qualifier qual) -> string
 
static void visit_subs (Type a, Type b, std::unordered_map< string, ty::Type > &sub)
 

Enumeration Type Documentation

◆ Kind

Enumerator
K_Unknown 

UnknownType, default, zero value. Hopefully never encountered!

K_Int 

Int

K_Nil 

Nil

K_Ptr 

Ptr

K_Struct 

Struct

K_Function 

Function

K_Generic 

Generic

K_OpaqueSelf 

OpaqueSelf

K_Meta 

Meta

Definition at line 14 of file type_base.hpp.

Function Documentation

◆ qual_suffix()

static auto yume::ty::qual_suffix ( Qualifier  qual) -> string
static

Definition at line 22 of file type.cpp.

References yume::Mut, yume::Ptr, and yume::Ref.

Referenced by yume::ty::Type::name(), and yume::ty::Ptr::name().

◆ visit_subs()

static void yume::ty::visit_subs ( Type  a,
Type  b,
std::unordered_map< string, ty::Type > &  sub 
)
static