From a4ddca68662f4bc0531763357b4bc00b6c50b456 Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 13 Aug 2022 13:00:37 +0200 Subject: target --- src/type.cff | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/type.cff (limited to 'src/type.cff') diff --git a/src/type.cff b/src/type.cff new file mode 100644 index 0000000..bd56503 --- /dev/null +++ b/src/type.cff @@ -0,0 +1,30 @@ +import "all.hff"; + +fn hashtype(ty *const Type) u32 { + let h = FNV1A_INI; + h = fnv1a_i(h, ty.konst ? 1 : 0); + switch ty.u { + case Void; case Bool; + + case Flo; + h = fnv1a_i(h, ty.size); + h = fnv1a_i(h, ty.align); + + case Int i; + h = fnv1a_i(h, i.sgn ? 1 : 0); + h = fnv1a_i(h, ty.size); + h = fnv1a_i(h, ty.align); + + case Ptr child; + h = fnv1a_i(h, child.id); + + case Arr arr; + h = fnv1a_i(h, arr.child.id); + h = fnv1a_i(h, arr.length); + + case Slice child; + h = fnv1a_i(h, child.id); + + } + return h; +} -- cgit v1.2.3