From 7c0ee9b4fe82f7723512cbd887354ff4e30d5dfe Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Wed, 3 Jun 2015 22:33:41 -0400 Subject: [PATCH] typing: improve reliability of `is_typed`. Signed-off-by: Jean Privat --- src/semantize/typing.nit | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 -- 1.7.9.5