Merge: add the annotation `readonly` on attributes
[nit.git] / src / modelize_property.nit
index b618676..96ec598 100644 (file)
@@ -718,6 +718,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 atwritable = self.get_single_annotation("writable", modelbuilder)