From: Jean Privat Date: Thu, 4 Jun 2015 02:33:41 +0000 (-0400) Subject: typing: improve reliability of `is_typed`. X-Git-Tag: v0.7.6~61^2~5 X-Git-Url: http://nitlanguage.org typing: improve reliability of `is_typed`. Signed-off-by: Jean Privat --- diff --git a/src/semantize/typing.nit b/src/semantize/typing.nit index c26ca0f..020ce3b 100644 --- a/src/semantize/typing.nit +++ b/src/semantize/typing.nit @@ -958,7 +958,7 @@ redef class AVarReassignExpr v.set_variable(self, variable, rettype) - self.is_typed = true + self.is_typed = rettype != null end end @@ -1004,9 +1004,11 @@ redef class AReturnExpr else v.visit_expr(nexpr) v.error(nexpr, "Error: `return` with value in a procedure.") + return end else if ret_type != null then v.error(self, "Error: `return` without value in a function.") + return end self.is_typed = true end @@ -2050,7 +2052,7 @@ redef class AAttrAssignExpr var mtype = self.attr_type v.visit_expr_subtype(self.n_value, mtype) - self.is_typed = true + self.is_typed = mtype != null end end @@ -2061,9 +2063,9 @@ redef class AAttrReassignExpr var mtype = self.attr_type if mtype == null then return # Skip error - self.resolve_reassignment(v, mtype, mtype) + var rettype = self.resolve_reassignment(v, mtype, mtype) - self.is_typed = true + self.is_typed = rettype != null end end