X-Git-Url: http://nitlanguage.org diff --git a/src/frontend/check_annotation.nit b/src/frontend/check_annotation.nit index 2e45627..b652061 100644 --- a/src/frontend/check_annotation.nit +++ b/src/frontend/check_annotation.nit @@ -22,6 +22,7 @@ import phase private import annotation redef class ToolContext + # Check for unknown annotation in each module var check_annotation_phase: Phase = new CheckAnnotationPhase(self, null) end @@ -39,7 +40,7 @@ private class CheckAnnotationPhase do # Get the mmodule var mmodule = nmodule.mmodule - assert mmodule != null + if mmodule == null then return self.mmodule = mmodule # If no decl block then quit @@ -60,7 +61,7 @@ private class CheckAnnotationPhase for m in super_mmodules do if declared_annotations[m].has(name) then - modelbuilder.warning(annot, "multiple-annotation-declarations", "Warning: an annotation `{name}` is already declared in module `{m}`") + modelbuilder.warning(annot, "multiple-annotation-declarations", "Warning: an annotation `{name}` is already declared in module `{m}`.") break label end end @@ -75,26 +76,43 @@ private class CheckAnnotationPhase var primtives_annotations_list = """ new_annotation +conditional + deprecated fixed lazy noinit readonly writable +optional autoinit -cached +noautoinit +lateinit nosuper old_style_init abstract intern extern no_warning +generated + +auto_inspect pkgconfig -c_compiler_option -c_linker_option +cflags +ldflags +light_ffi platform + +test +before +before_all +after +after_all +example + +expects """ # Efficient set build from `primtives_annotations_list` @@ -109,7 +127,7 @@ platform if primtives_annotations.has(name) then return var mmodule = self.mmodule - assert mmodule != null + if mmodule == null then return # Lazily build the full user-list var annots = user_annotations.get_or_null(mmodule) @@ -122,7 +140,7 @@ platform if annots.has(name) then return - toolcontext.modelbuilder.warning(nat, "unknown-annotation", "Warning: unknown annotation `{name}`") + toolcontext.modelbuilder.warning(nat, "unknown-annotation", "Warning: unknown annotation `{name}`.") annots.add(name) # to avoid multiple errors on the same name end