py: Make viper codegen raise proper exception (ViperTypeError) on error.
This fixes a long standing problem that viper code generation gave
terrible error messages, and actually no errors on pyboard where
assertions are disabled.
Now all compile-time errors are raised as proper Python exceptions, and
are of type ViperTypeError.
Addresses issue #940.
diff --git a/py/objexcept.c b/py/objexcept.c
index 4623e73..6c108d9 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -252,6 +252,10 @@
*/
//MP_DEFINE_EXCEPTION(SystemError, Exception)
MP_DEFINE_EXCEPTION(TypeError, Exception)
+#if MICROPY_EMIT_NATIVE
+ MP_DEFINE_EXCEPTION_BASE(TypeError)
+ MP_DEFINE_EXCEPTION(ViperTypeError, TypeError)
+#endif
MP_DEFINE_EXCEPTION(ValueError, Exception)
#if MICROPY_PY_BUILTINS_STR_UNICODE
MP_DEFINE_EXCEPTION_BASE(ValueError)