typing: check missing return in AAttrPropdef with block
authorJean Privat <jean@pryen.org>
Tue, 20 Jan 2015 04:04:07 +0000 (11:04 +0700)
committerJean Privat <jean@pryen.org>
Tue, 20 Jan 2015 04:04:07 +0000 (11:04 +0700)
Signed-off-by: Jean Privat <jean@pryen.org>

src/semantize/typing.nit

index 8fb3852..343edbd 100644 (file)
@@ -609,6 +609,10 @@ redef class AAttrPropdef
                var nblock = self.n_block
                if nblock != null then
                        v.visit_stmt(nblock)
+                       if not nblock.after_flow_context.is_unreachable then
+                               # We reach the end of the init without having a return, it is bad
+                               v.error(self, "Control error: Reached end of block (a 'return' with a value was expected).")
+                       end
                end
        end
 end