@@ -66,30 +66,34 @@ const mp_obj_type_t mp_type_BaseException = {
6666 .make_new = mp_obj_exception_make_new ,
6767};
6868
69- #define MP_DEFINE_EXCEPTION (exc_name ) \
70- STATIC const mp_obj_tuple_t mp_type_ ## exc_name ## _bases_tuple = {{&tuple_type}, 1, {(mp_obj_t)&mp_type_BaseException}};\
69+ #define MP_DEFINE_EXCEPTION_BASE (base_name ) \
70+ STATIC const mp_obj_tuple_t mp_type_ ## base_name ## _base_tuple = {{&tuple_type}, 1, {(mp_obj_t)&mp_type_ ## base_name}};\
71+
72+ #define MP_DEFINE_EXCEPTION (exc_name , base_name ) \
7173const mp_obj_type_t mp_type_ ## exc_name = { \
7274 { &mp_type_type }, \
7375 .name = MP_QSTR_ ## exc_name, \
7476 .print = mp_obj_exception_print, \
7577 .make_new = mp_obj_exception_make_new, \
76- .bases_tuple = (mp_obj_t)&mp_type_ ## exc_name ## _bases_tuple , \
78+ .bases_tuple = (mp_obj_t)&mp_type_ ## base_name ## _base_tuple , \
7779};
7880
79- MP_DEFINE_EXCEPTION (AssertionError )
80- MP_DEFINE_EXCEPTION (AttributeError )
81- MP_DEFINE_EXCEPTION (ImportError )
82- MP_DEFINE_EXCEPTION (IndentationError )
83- MP_DEFINE_EXCEPTION (IndexError )
84- MP_DEFINE_EXCEPTION (KeyError )
85- MP_DEFINE_EXCEPTION (NameError )
86- MP_DEFINE_EXCEPTION (SyntaxError )
87- MP_DEFINE_EXCEPTION (TypeError )
88- MP_DEFINE_EXCEPTION (ValueError )
89- MP_DEFINE_EXCEPTION (OverflowError )
90- MP_DEFINE_EXCEPTION (OSError )
91- MP_DEFINE_EXCEPTION (NotImplementedError )
92- MP_DEFINE_EXCEPTION (StopIteration )
81+ MP_DEFINE_EXCEPTION_BASE (BaseException )
82+
83+ MP_DEFINE_EXCEPTION (AssertionError , BaseException )
84+ MP_DEFINE_EXCEPTION (AttributeError , BaseException )
85+ MP_DEFINE_EXCEPTION (ImportError , BaseException )
86+ MP_DEFINE_EXCEPTION (IndentationError , BaseException )
87+ MP_DEFINE_EXCEPTION (IndexError , BaseException )
88+ MP_DEFINE_EXCEPTION (KeyError , BaseException )
89+ MP_DEFINE_EXCEPTION (NameError , BaseException )
90+ MP_DEFINE_EXCEPTION (SyntaxError , BaseException )
91+ MP_DEFINE_EXCEPTION (TypeError , BaseException )
92+ MP_DEFINE_EXCEPTION (ValueError , BaseException )
93+ MP_DEFINE_EXCEPTION (OverflowError , BaseException )
94+ MP_DEFINE_EXCEPTION (OSError , BaseException )
95+ MP_DEFINE_EXCEPTION (NotImplementedError , BaseException )
96+ MP_DEFINE_EXCEPTION (StopIteration , BaseException )
9397
9498mp_obj_t mp_obj_new_exception (const mp_obj_type_t * exc_type ) {
9599 return mp_obj_new_exception_msg_varg (exc_type , NULL );
0 commit comments