From 1e11328125d38923fabeb91be6b218fa2c136498 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Thu, 9 Jul 2015 19:55:32 -0400 Subject: [PATCH] nitj: build naive type tables using Java HashMaps Signed-off-by: Alexandre Terrasa --- src/compiler/java_compiler.nit | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/compiler/java_compiler.nit b/src/compiler/java_compiler.nit index 05d6de1..958127a 100644 --- a/src/compiler/java_compiler.nit +++ b/src/compiler/java_compiler.nit @@ -372,7 +372,7 @@ redef class MClass v.add(" private {rt_name}() \{") v.add(" this.class_name = \"{name}\";") compile_vft(v) - # TODO compile_type_table(v) + compile_type_table(v) v.add(" \}") v.add(" public static RTClass get{rt_name}() \{") v.add(" if(instance == null) \{") @@ -408,6 +408,17 @@ redef class MClass end end end + + # Compile the type table for the MClass + fun compile_type_table(v: JavaCompilerVisitor) do + for pclass in in_hierarchy(v.compiler.mainmodule).greaters do + if pclass == self then + v.add("supers.put(\"{pclass.jname}\", this);") + else + v.add("supers.put(\"{pclass.jname}\", {pclass.rt_name}.get{pclass.rt_name}());") + end + end + end end redef class MMethodDef -- 1.7.9.5