model: try_get_primitive_method asks for a MClass (and not a MType)

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update error_needed_method_alt6 and error_needed_method_alt7

Signed-off-by: Jean Privat <jean@pryen.org>
nitg/i: can use a ABlockExpr as an expression

This will be useful when AST transformations will be more used
as a single expression could be transformed as a sequence of statements.

Signed-off-by: Jean Privat <jean@pryen.org>
parser: move things from parser_prod to parser_nodes

Signed-off-by: Jean Privat <jean@pryen.org>
parser: clean, intent and comment parser_nodes

Signed-off-by: Jean Privat <jean@pryen.org>
parser: `Visitor::visit` does not accepts `null`

Signed-off-by: Jean Privat <jean@pryen.org>
parser: hide ANode::replace_child, add ANode::detach

Signed-off-by: Jean Privat <jean@pryen.org>
parser: do not lose location in case of replacement

Signed-off-by: Jean Privat <jean@pryen.org>
typing: toggle ASuperExpr::is_typed

Signed-off-by: Jean Privat <jean@pryen.org>
nitg/i: implements var assignment as an expression

The returned value is the right value

Signed-off-by: Jean Privat <jean@pryen.org>
nitg/i: implement the `if` as an expression

Signed-off-by: Jean Privat <jean@pryen.org>
modelbuilder: error when using `intrude' on classes and properties

Signed-off-by: Jean Privat <jean@pryen.org>
README: update