Merge: Attribute and autoinit annotations
authorJean Privat <jean@pryen.org>
Wed, 10 Jun 2015 01:46:42 +0000 (21:46 -0400)
committerJean Privat <jean@pryen.org>
Wed, 10 Jun 2015 01:46:42 +0000 (21:46 -0400)
commit04a9a352d47495679577101f078bae8d50e757c2
tree133d7348226cd6d324ea067599a2deebee39f728
parentbc11b95d9ae150f1ffa4a41b8ef6c91d6e2f73bb
parent6a7295a0258019dbddb80f059307b83fb263d9a8
Merge: Attribute and autoinit annotations

A big set of loosely coupled but related changed on the annotations on attributes and methods.
Here is a summary of the changes on the user-side:

* No more special case for the kind of classes, so you can use `autoinit` in interfaces.
* Explicit annotation `autoinit` is understood on attributes and is the default on value-less concrete attribute.
* Abstract attributes are `noautoinit` by default, if `autoinit` is given, it is applied on the setter. This way abstract attributes are basically just a couple of getter-setter. close #1311

This way there is less special cases and behaviors. Still more work is required to finish #1322.

Pull-Request: #1433
Reviewed-by: Lucas Bajolet <r4pass@hotmail.com>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
src/compiler/abstract_compiler.nit
src/rapid_type_analysis.nit
src/semantize/typing.nit