From f1998edce324b2f3938d88a56ab006830f7f954e Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Mon, 21 Jul 2014 11:41:52 -0400 Subject: [PATCH] modelize_property: accept annotation `writable` Signed-off-by: Jean Privat --- src/modelize_property.nit | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modelize_property.nit b/src/modelize_property.nit index 938a3a0..8c63151 100644 --- a/src/modelize_property.nit +++ b/src/modelize_property.nit @@ -18,6 +18,7 @@ module modelize_property import modelize_class +import annotation redef class ToolContext var modelize_property_phase: Phase = new ModelizePropertyPhase(self, [modelize_class_phase]) @@ -707,13 +708,17 @@ redef class AAttrPropdef var writename = name + "=" var nwritable = self.n_writable + var atwritable = self.get_single_annotation("writable", modelbuilder) var mwriteprop = modelbuilder.try_get_mproperty_by_name(nid2, mclassdef, writename).as(nullable MMethod) var nwkwredef: nullable Token = null if nwritable != null then nwkwredef = nwritable.n_kwredef + if atwritable != null then nwkwredef = atwritable.n_kwredef if mwriteprop == null then var mvisibility if nwritable != null then mvisibility = new_property_visibility(modelbuilder, mclassdef, nwritable.n_visibility) + else if atwritable != null then + mvisibility = new_property_visibility(modelbuilder, mclassdef, atwritable.n_visibility) else mvisibility = private_visibility end @@ -723,6 +728,8 @@ redef class AAttrPropdef if not self.check_redef_keyword(modelbuilder, mclassdef, nwkwredef or else n_kwredef, true, mwriteprop) then return if nwritable != null then check_redef_property_visibility(modelbuilder, nwritable.n_visibility, mwriteprop) + else if atwritable != null then + check_redef_property_visibility(modelbuilder, atwritable.n_visibility, mwriteprop) end end mclassdef.mprop2npropdef[mwriteprop] = self -- 1.7.9.5