From: Jean Privat Date: Mon, 21 Jul 2014 18:55:55 +0000 (-0400) Subject: modelize_property: add readonly annotation on attributes X-Git-Tag: v0.6.7~31^2~1 X-Git-Url: http://nitlanguage.org modelize_property: add readonly annotation on attributes Signed-off-by: Jean Privat --- diff --git a/src/modelize_property.nit b/src/modelize_property.nit index 938a3a0..898366b 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]) @@ -705,6 +706,15 @@ redef class AAttrPropdef modelbuilder.mpropdef2npropdef[mreadpropdef] = self mreadpropdef.mdoc = mpropdef.mdoc + var atreadonly = self.get_single_annotation("readonly", modelbuilder) + if atreadonly != null then + if n_expr == null then + modelbuilder.error(atreadonly, "Error: a readonly attribute needs a value") + end + # No setter, so just leave + return + end + var writename = name + "=" var nwritable = self.n_writable var mwriteprop = modelbuilder.try_get_mproperty_by_name(nid2, mclassdef, writename).as(nullable MMethod)