diff --git a/Python/compile.c b/Python/compile.c index f603e3d29e5..f228e16079b 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -3765,7 +3765,6 @@ assignment_helper(struct compiler *c, asdl_seq *elts) "star-unpacking assignment"); ADDOP_I(c, UNPACK_EX, (i + ((n-i-1) << 8))); seen_star = 1; - asdl_seq_SET(elts, i, elt->v.Starred.value); } else if (elt->kind == Starred_kind) { return compiler_error(c, @@ -3775,7 +3774,10 @@ assignment_helper(struct compiler *c, asdl_seq *elts) if (!seen_star) { ADDOP_I(c, UNPACK_SEQUENCE, n); } - VISIT_SEQ(c, expr, elts); + for (i = 0; i < n; i++) { + expr_ty elt = asdl_seq_GET(elts, i); + VISIT(c, expr, elt->kind != Starred_kind ? elt : elt->v.Starred.value); + } return 1; }