X-Git-Url: http://nitlanguage.org diff --git a/src/frontend/check_annotation.nit b/src/frontend/check_annotation.nit index 7cd186e..9dc9cfd 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,25 +76,45 @@ 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 + +expect +ensure +no_contract """ # Efficient set build from `primtives_annotations_list` @@ -108,7 +129,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) @@ -121,7 +142,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