From fa91eccdd05df2a54cf95b284d5d3a3891d25892 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Mon, 21 Sep 2015 13:34:59 -0400 Subject: [PATCH] sepcomp: add `MType::tag_value` Signed-off-by: Jean Privat --- src/compiler/separate_compiler.nit | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compiler/separate_compiler.nit b/src/compiler/separate_compiler.nit index ff5f3ba..9626ac7 100644 --- a/src/compiler/separate_compiler.nit +++ b/src/compiler/separate_compiler.nit @@ -998,10 +998,13 @@ class SeparateCompiler # use some Huffman coding. if t.name == "Int" then class_info[1] = t + t.mclass_type.tag_value = 1 else if t.name == "Char" then class_info[2] = t + t.mclass_type.tag_value = 2 else if t.name == "Bool" then class_info[3] = t + t.mclass_type.tag_value = 3 else continue end @@ -2327,6 +2330,12 @@ redef class MType # Are values of `self` tagged? # If false, it means that the type is not primitive, or is boxed. var is_tagged = false + + # The tag value of the type + # + # ENSURE `is_tagged == (tag_value > 0)` + # ENSURE `not is_tagged == (tag_value == 0)` + var tag_value = 0 end redef class MEntity -- 1.7.9.5