From 79d9e2f2c5f87b9d7d9ebad0ce8e129ab098dd5c Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Mon, 24 Feb 2014 10:44:20 -0500 Subject: [PATCH] RTA: force primitive types to be alive Signed-off-by: Jean Privat --- src/rapid_type_analysis.nit | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/rapid_type_analysis.nit b/src/rapid_type_analysis.nit index 820819d..e2422aa 100644 --- a/src/rapid_type_analysis.nit +++ b/src/rapid_type_analysis.nit @@ -81,6 +81,12 @@ class RapidTypeAnalysis # The method definitions that remain to visit private var todo = new List[MMethodDef] + private fun force_alive(classname: String) + do + var classes = self.modelbuilder.model.get_mclasses_by_name(classname) + if classes != null then for c in classes do self.add_new(c.mclass_type, c.mclass_type) + end + # Run the analysis until all visitable method definitions are visited. fun run_analysis do @@ -96,9 +102,11 @@ class RapidTypeAnalysis add_send(maintype, mainprop) end - # Force Bool - var classes = self.modelbuilder.model.get_mclasses_by_name("Bool") - if classes != null then for c in classes do self.add_new(c.mclass_type, c.mclass_type) + # Force primitive types + force_alive("Bool") + force_alive("Int") + force_alive("Float") + force_alive("Char") while not todo.is_empty do var mmethoddef = todo.shift -- 1.7.9.5