typedef struct Type Type;
typedef struct UncommonType UncommonType;
typedef struct InterfaceType InterfaceType;
typedef struct Method Method;
typedef struct IMethod IMethod;
typedef struct SliceType SliceType;
typedef struct FuncType FuncType;
struct Type
{
uintptr size;
uint32 hash;
uint8 _unused;
uint8 align;
uint8 fieldAlign;
uint8 kind;
Alg *alg;
void *gc;
String *string;
UncommonType *x;
Type *ptrto;
byte *zero;
};
struct Method
{
String *name;
String *pkgPath;
Type *mtyp;
Type *typ;
void (*ifn)(void);
void (*tfn)(void);
};
struct UncommonType
{
String *name;
String *pkgPath;
Slice mhdr;
Method m[];
};
struct IMethod
{
String *name;
String *pkgPath;
Type *type;
};
struct InterfaceType
{
Type;
Slice mhdr;
IMethod m[];
};
struct MapType
{
Type;
Type *key;
Type *elem;
Type *bucket;
Type *hmap;
};
struct ChanType
{
Type;
Type *elem;
uintptr dir;
};
struct SliceType
{
Type;
Type *elem;
};
struct FuncType
{
Type;
bool dotdotdot;
Slice in;
Slice out;
};
struct PtrType
{
Type;
Type *elem;
};