nitg: runtime cast error shows types
authorJean Privat <jean@pryen.org>
Tue, 26 Nov 2013 15:00:11 +0000 (10:00 -0500)
committerJean Privat <jean@pryen.org>
Tue, 26 Nov 2013 15:00:11 +0000 (10:00 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

src/abstract_compiler.nit

index cdd1535..df82067 100644 (file)
@@ -913,7 +913,9 @@ abstract class AbstractCompilerVisitor
        do
                var res = self.type_test(value, mtype, tag)
                self.add("if (!{res}) \{")
-               self.add_abort("Cast failed")
+               var cn = self.class_name_string(value)
+               self.add("fprintf(stderr, \"Runtime error: Cast failed. Expected `%s`, got `%s`\", \"{mtype.to_s.escape_to_c}\", {cn});")
+               self.add_raw_abort
                self.add("\}")
        end