import "libc"; main :: proc(): int { a: int; d: float; assert(typeof(:int) == typeof(:int)); assert(typeof(:int) == typeof(a)); assert(typeof(:float) != typeof(:int)); assert(sizeof(:int) == sizeof(a)); assert(alignof(:int) == alignof(:int)); assert(sizeof(:int) != sizeof(:*int)); assert(typeof(:int) != typeof(:*int)); assert(alignof(:int) != alignof(:*int)); assert(typeof(:*int) == typeof(&a)); assert(sizeof(:*int) == sizeof(&a)); assert(sizeof(a) == sizeof(d)); arr: [30]int; assert(lengthof(arr) == 30); assert(sizeof(arr) == lengthof(arr) * sizeof(:int)); assert(typeof(arr) == typeof(:[30]int)); assert(typeof(:int) != typeof(:[30]int)); assert(typeof(arr[0]) == typeof(a)); assert(typeof(:double) != typeof(:int)); assert(typeof(:double) != typeof(:*double)); t := :[]ullong{ typeof(:char), typeof(:uchar), typeof(:short), typeof(:ushort), typeof(:bool), typeof(:int), typeof(:uint), typeof(:long), typeof(:ulong), typeof(:llong), typeof(:ullong), typeof(:float), typeof(:double), typeof(:*char), typeof(:*uchar), typeof(:*short), typeof(:*ushort), typeof(:*bool), typeof(:*int), typeof(:*uint), typeof(:*long), typeof(:*ulong), typeof(:*llong), typeof(:*ullong), typeof(:*float), typeof(:*double), typeof(:[1]char), typeof(:[1]uchar), typeof(:[1]short), typeof(:[1]ushort), typeof(:[1]bool), typeof(:[1]int), typeof(:[1]uint), typeof(:[1]long), typeof(:[1]ulong), typeof(:[1]llong), typeof(:[1]ullong), typeof(:[1]float), typeof(:[1]double), typeof(:**char), typeof(:**uchar), typeof(:**short), typeof(:**ushort), typeof(:**bool), typeof(:**int), typeof(:**uint), typeof(:**long), typeof(:**ulong), typeof(:**llong), typeof(:**ullong), typeof(:**float), typeof(:**double), }; for i := 0; i < lengthof(t); i += 1 { for j := 0; j < lengthof(t); j += 1 { if (i==j) continue; assert(t[i] != t[j]); } } return 0; }