aboutsummaryrefslogtreecommitdiff
path: root/py/objexcept.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-04-20 13:29:31 +0000
committerDamien George <damien.p.george@gmail.com>2015-04-20 13:29:31 +0000
commitc8b60f013b9d624a74ad502460f2bc7d00c39644 (patch)
tree4fdc71a6e6963961e0591b3abc621d672bb1c645 /py/objexcept.c
parent2bb5f41611ddc90cf44090e87efd94523580008b (diff)
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.
Diffstat (limited to 'py/objexcept.c')
-rw-r--r--py/objexcept.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/py/objexcept.c b/py/objexcept.c
index 4623e7318..6c108d99c 100644
--- a/py/objexcept.c
+++ b/py/objexcept.c
@@ -252,6 +252,10 @@ MP_DEFINE_EXCEPTION(Exception, BaseException)
*/
//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)