with self.assertRaisesRegex(TypeError, r"\(MRO\) for bases object, Generic"):
class My[X](object): ...
+ def test_compile_error_in_type_param_bound(self):
+ # This should not crash, see gh-145187
+ check_syntax_error(
+ self,
+ "if True:\n class h[l:{7for*()in 0}]:2"
+ )
+
class TypeParamsNonlocalTest(unittest.TestCase):
def test_nonlocal_disallowed_01(self):
ADDOP_LOAD_CONST_NEW(c, LOC(e), defaults);
RETURN_IF_ERROR(codegen_setup_annotations_scope(c, LOC(e), key, name));
if (allow_starred && e->kind == Starred_kind) {
- VISIT(c, expr, e->v.Starred.value);
- ADDOP_I(c, LOC(e), UNPACK_SEQUENCE, (Py_ssize_t)1);
+ VISIT_IN_SCOPE(c, expr, e->v.Starred.value);
+ ADDOP_I_IN_SCOPE(c, LOC(e), UNPACK_SEQUENCE, (Py_ssize_t)1);
}
else {
- VISIT(c, expr, e);
+ VISIT_IN_SCOPE(c, expr, e);
}
ADDOP_IN_SCOPE(c, LOC(e), RETURN_VALUE);
PyCodeObject *co = _PyCompile_OptimizeAndAssemble(c, 1);