From: Jean Privat Date: Tue, 7 Jul 2009 15:00:39 +0000 (-0400) Subject: syntax: do not compute ancestors if syntax failed X-Git-Tag: v0.3~177 X-Git-Url: http://nitlanguage.org syntax: do not compute ancestors if syntax failed Signed-off-by: Jean Privat --- diff --git a/src/syntax/mmbuilder.nit b/src/syntax/mmbuilder.nit index dba9f20..de5ccbe 100644 --- a/src/syntax/mmbuilder.nit +++ b/src/syntax/mmbuilder.nit @@ -60,6 +60,7 @@ redef class MMSrcModule end c.compute_super_classes end + if tc.error_count > 0 then exit(1) # Class that we will process now are those in the hierarchy # Its mean all the visible classes and their super-classes @@ -74,9 +75,9 @@ redef class MMSrcModule var mmbv1b = new ClassAncestorBuilder(tc, self) for c in classes do c.accept_class_visitor(mmbv1b) + if tc.error_count > 0 then exit(1) c.compute_ancestors end - if tc.error_count > 0 then exit(1) # Check class conformity var mmbv1b = new ClassVerifierVisitor(tc, self) diff --git a/tests/sav/error_type_not_ok2.fail b/tests/sav/error_type_not_ok2.fail deleted file mode 100644 index 4d19b73..0000000 --- a/tests/sav/error_type_not_ok2.fail +++ /dev/null @@ -1,16 +0,0 @@ -./error_type_not_ok2.nit:21,15: Type error: class Fail not found in module error_type_not_ok2. -Cast failled in static_type::MMAncestor::stype (./metamodel//static_type.nit:265) -,---- Stack trace -- - - - -| static_type::MMAncestor::stype (./metamodel//static_type.nit:264) -| inheritance::MMAncestor::add_in (./metamodel//inheritance.nit:384) -| inheritance::MMLocalClass::build_ancestors (./metamodel//inheritance.nit:243) -| inheritance::MMLocalClass::compute_ancestors (./metamodel//inheritance.nit:90) -| mmbuilder::MMSrcModule::do_mmbuilder (./syntax//mmbuilder.nit:36) -| syntax::MMSrcModule::process_syntax (./syntax//syntax.nit:66) -| syntax::SrcModuleLoader::(mmloader::ModuleLoader::process_metamodel) (./syntax//syntax.nit:49) -| mmloader::ModuleLoader::load_and_process_module (./mmloader.nit:277) -| mmloader::ToolContext::try_to_load (./mmloader.nit:129) -| mmloader::ToolContext::get_module_from_filename (./mmloader.nit:175) -| abstracttool::AbstractCompiler::exec_cmd_line (./abstracttool.nit:40) -| nitc::Sys::(kernel::Sys::main) (./nitc.nit:105) -`------------------- - - - diff --git a/tests/sav/error_type_not_ok2.sav b/tests/sav/error_type_not_ok2.sav new file mode 100644 index 0000000..29b84c0 --- /dev/null +++ b/tests/sav/error_type_not_ok2.sav @@ -0,0 +1 @@ +./error_type_not_ok2.nit:21,15: Type error: class Fail not found in module error_type_not_ok2. diff --git a/tests/sav/error_type_not_ok2_alt1.fail b/tests/sav/error_type_not_ok2_alt1.fail deleted file mode 100644 index 53d3cc3..0000000 --- a/tests/sav/error_type_not_ok2_alt1.fail +++ /dev/null @@ -1,16 +0,0 @@ -alt/error_type_not_ok2_alt1.nit:21,15--18: Type error: 'Fail' is a generic class. -Cast failled in static_type::MMAncestor::stype (./metamodel//static_type.nit:265) -,---- Stack trace -- - - - -| static_type::MMAncestor::stype (./metamodel//static_type.nit:264) -| inheritance::MMAncestor::add_in (./metamodel//inheritance.nit:384) -| inheritance::MMLocalClass::build_ancestors (./metamodel//inheritance.nit:243) -| inheritance::MMLocalClass::compute_ancestors (./metamodel//inheritance.nit:90) -| mmbuilder::MMSrcModule::do_mmbuilder (./syntax//mmbuilder.nit:36) -| syntax::MMSrcModule::process_syntax (./syntax//syntax.nit:66) -| syntax::SrcModuleLoader::(mmloader::ModuleLoader::process_metamodel) (./syntax//syntax.nit:49) -| mmloader::ModuleLoader::load_and_process_module (./mmloader.nit:277) -| mmloader::ToolContext::try_to_load (./mmloader.nit:129) -| mmloader::ToolContext::get_module_from_filename (./mmloader.nit:175) -| abstracttool::AbstractCompiler::exec_cmd_line (./abstracttool.nit:40) -| nitc::Sys::(kernel::Sys::main) (./nitc.nit:105) -`------------------- - - - diff --git a/tests/sav/error_type_not_ok2_alt1.sav b/tests/sav/error_type_not_ok2_alt1.sav new file mode 100644 index 0000000..549a8af --- /dev/null +++ b/tests/sav/error_type_not_ok2_alt1.sav @@ -0,0 +1 @@ +alt/error_type_not_ok2_alt1.nit:21,15--18: Type error: 'Fail' is a generic class. diff --git a/tests/sav/error_type_not_ok_alt1.fail b/tests/sav/error_type_not_ok_alt1.fail deleted file mode 100644 index 3c42717..0000000 --- a/tests/sav/error_type_not_ok_alt1.fail +++ /dev/null @@ -1,16 +0,0 @@ -alt/error_type_not_ok_alt1.nit:21,9--12: Type error: 'Fail' is a generic class. -Cast failled in static_type::MMAncestor::stype (./metamodel//static_type.nit:265) -,---- Stack trace -- - - - -| static_type::MMAncestor::stype (./metamodel//static_type.nit:264) -| inheritance::MMAncestor::add_in (./metamodel//inheritance.nit:384) -| inheritance::MMLocalClass::build_ancestors (./metamodel//inheritance.nit:243) -| inheritance::MMLocalClass::compute_ancestors (./metamodel//inheritance.nit:90) -| mmbuilder::MMSrcModule::do_mmbuilder (./syntax//mmbuilder.nit:36) -| syntax::MMSrcModule::process_syntax (./syntax//syntax.nit:66) -| syntax::SrcModuleLoader::(mmloader::ModuleLoader::process_metamodel) (./syntax//syntax.nit:49) -| mmloader::ModuleLoader::load_and_process_module (./mmloader.nit:277) -| mmloader::ToolContext::try_to_load (./mmloader.nit:129) -| mmloader::ToolContext::get_module_from_filename (./mmloader.nit:175) -| abstracttool::AbstractCompiler::exec_cmd_line (./abstracttool.nit:40) -| nitc::Sys::(kernel::Sys::main) (./nitc.nit:105) -`------------------- - - - diff --git a/tests/sav/error_type_not_ok_alt1.sav b/tests/sav/error_type_not_ok_alt1.sav new file mode 100644 index 0000000..6b6a3c2 --- /dev/null +++ b/tests/sav/error_type_not_ok_alt1.sav @@ -0,0 +1 @@ +alt/error_type_not_ok_alt1.nit:21,9--12: Type error: 'Fail' is a generic class.