From: Jean-Sebastien Gelinas Date: Fri, 24 Jul 2009 04:19:59 +0000 (-0400) Subject: tools: add test to validate existence of needed classes X-Git-Tag: v0.3~116 X-Git-Url: http://nitlanguage.org tools: add test to validate existence of needed classes Signed-off-by: Jean-Sebastien Gelinas Signed-off-by: Jean Privat --- diff --git a/src/syntax/syntax_base.nit b/src/syntax/syntax_base.nit index 56c6a1c..824ea50 100644 --- a/src/syntax/syntax_base.nit +++ b/src/syntax/syntax_base.nit @@ -287,12 +287,14 @@ class AbsSyntaxVisitor special Visitor fun get_type_by_name(clsname: Symbol): MMType do + if not _module.has_global_class_named(clsname) then _tc.fatal_error(_module.location, "Missing necessary class: \"{clsname}\"") var cls = _module.class_by_name(clsname) return cls.get_type end fun get_instantiated_type_by_name(clsname: Symbol, vtype: Array[MMType]): MMType do + if not _module.has_global_class_named(clsname) then _tc.fatal_error(_module.location, "Missing necessary class: \"{clsname}\"") var cls = _module.class_by_name(clsname) return cls.get_instantiate_type(vtype) end diff --git a/tests/error_needed_types.nit b/tests/error_needed_types.nit new file mode 100644 index 0000000..dea2941 --- /dev/null +++ b/tests/error_needed_types.nit @@ -0,0 +1,24 @@ + +import end#!alt7# +#alt7#import kernel +class Object#!alt7# +end#!alt7# + +#alt6#class A +#alt6#end + +#alt8#class L +#alt8#end + +fun some_fun do +#alt1# var v = 1 +#alt2# var v = 1.0 +#alt3# var v = '1' +#alt4# var v = "1" +#alt5# var v = true +#alt6# var v = [new A, new A] +#alt7# var v = [1..10] +#alt8# for i in new L do +#alt8# end + var v: Object +end diff --git a/tests/sav/error_needed_types.sav b/tests/sav/error_needed_types.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/error_needed_types_alt1.sav b/tests/sav/error_needed_types_alt1.sav new file mode 100644 index 0000000..562f48a --- /dev/null +++ b/tests/sav/error_needed_types_alt1.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt1.nit:0,0: Missing necessary class: "Int" diff --git a/tests/sav/error_needed_types_alt2.sav b/tests/sav/error_needed_types_alt2.sav new file mode 100644 index 0000000..e378706 --- /dev/null +++ b/tests/sav/error_needed_types_alt2.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt2.nit:0,0: Missing necessary class: "Float" diff --git a/tests/sav/error_needed_types_alt3.sav b/tests/sav/error_needed_types_alt3.sav new file mode 100644 index 0000000..169ec92 --- /dev/null +++ b/tests/sav/error_needed_types_alt3.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt3.nit:0,0: Missing necessary class: "Char" diff --git a/tests/sav/error_needed_types_alt4.sav b/tests/sav/error_needed_types_alt4.sav new file mode 100644 index 0000000..1686aff --- /dev/null +++ b/tests/sav/error_needed_types_alt4.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt4.nit:0,0: Missing necessary class: "String" diff --git a/tests/sav/error_needed_types_alt5.sav b/tests/sav/error_needed_types_alt5.sav new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/error_needed_types_alt6.sav b/tests/sav/error_needed_types_alt6.sav new file mode 100644 index 0000000..7abf04e --- /dev/null +++ b/tests/sav/error_needed_types_alt6.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt6.nit:0,0: Missing necessary class: "Array" diff --git a/tests/sav/error_needed_types_alt7.sav b/tests/sav/error_needed_types_alt7.sav new file mode 100644 index 0000000..f0f3564 --- /dev/null +++ b/tests/sav/error_needed_types_alt7.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt7.nit:0,0: Missing necessary class: "Range" diff --git a/tests/sav/error_needed_types_alt8.sav b/tests/sav/error_needed_types_alt8.sav new file mode 100644 index 0000000..71b0636 --- /dev/null +++ b/tests/sav/error_needed_types_alt8.sav @@ -0,0 +1 @@ +alt/error_needed_types_alt8.nit:0,0: Missing necessary class: "Collection" diff --git a/tests/sav/error_needed_types_alt9.sav b/tests/sav/error_needed_types_alt9.sav new file mode 100644 index 0000000..e69de29