[pypy-commit] pypy ast-issue1673: solved issue 1713 and issue 1673
wenzhuman
noreply at buildbot.pypy.org
Tue Apr 1 05:39:23 CEST 2014
Author: wenzhuman <manwenzhu at gamil.com>
Branch: ast-issue1673
Changeset: r70364:7f42f2f479e4
Date: 2014-03-30 03:30 -0400
http://bitbucket.org/pypy/pypy/changeset/7f42f2f479e4/
Log: solved issue 1713 and issue 1673
diff --git a/pypy/interpreter/astcompiler/ast.py b/pypy/interpreter/astcompiler/ast.py
--- a/pypy/interpreter/astcompiler/ast.py
+++ b/pypy/interpreter/astcompiler/ast.py
@@ -49,13 +49,19 @@
w_type = space.type(self)
w_fields = w_type.getdictvalue(space, "_fields")
for w_name in space.fixedview(w_fields):
- space.setitem(w_dict, w_name,
+ try:
+ space.setitem(w_dict, w_name,
space.getattr(self, w_name))
+ except:
+ pass
w_attrs = space.findattr(w_type, space.wrap("_attributes"))
if w_attrs:
for w_name in space.fixedview(w_attrs):
- space.setitem(w_dict, w_name,
+ try:
+ space.setitem(w_dict, w_name,
space.getattr(self, w_name))
+ except:
+ pass
return space.newtuple([space.type(self),
space.newtuple([]),
w_dict])
@@ -2913,7 +2919,7 @@
w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'body')
+ w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state |= 1
def Expression_del_body(space, w_self):
@@ -3011,7 +3017,7 @@
w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'lineno')
+ w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state |= 1
def stmt_del_lineno(space, w_self):
@@ -3038,7 +3044,7 @@
w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'col_offset')
+ w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state |= 2
def stmt_del_col_offset(space, w_self):
@@ -3074,7 +3080,7 @@
w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'name')
+ w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state |= 4
def FunctionDef_del_name(space, w_self):
@@ -3101,7 +3107,7 @@
w_self.setdictvalue(space, 'args', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'args')
+ w_self.setdictvalue(space, 'args', w_new_value)
w_self.initialization_state |= 8
def FunctionDef_del_args(space, w_self):
@@ -3201,7 +3207,7 @@
w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'name')
+ w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state |= 4
def ClassDef_del_name(space, w_self):
@@ -3326,7 +3332,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Return_del_value(space, w_self):
@@ -3448,7 +3454,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 8
def Assign_del_value(space, w_self):
@@ -3503,7 +3509,7 @@
w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'target')
+ w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state |= 4
def AugAssign_del_target(space, w_self):
@@ -3561,7 +3567,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 16
def AugAssign_del_value(space, w_self):
@@ -3616,7 +3622,7 @@
w_self.setdictvalue(space, 'dest', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'dest')
+ w_self.setdictvalue(space, 'dest', w_new_value)
w_self.initialization_state |= 4
def Print_del_dest(space, w_self):
@@ -3665,7 +3671,7 @@
w_self.setdictvalue(space, 'nl', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'nl')
+ w_self.setdictvalue(space, 'nl', w_new_value)
w_self.initialization_state |= 16
def Print_del_nl(space, w_self):
@@ -3721,7 +3727,7 @@
w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'target')
+ w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state |= 4
def For_del_target(space, w_self):
@@ -3750,7 +3756,7 @@
w_self.setdictvalue(space, 'iter', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'iter')
+ w_self.setdictvalue(space, 'iter', w_new_value)
w_self.initialization_state |= 8
def For_del_iter(space, w_self):
@@ -3852,7 +3858,7 @@
w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'test')
+ w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state |= 4
def While_del_test(space, w_self):
@@ -3953,7 +3959,7 @@
w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'test')
+ w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state |= 4
def If_del_test(space, w_self):
@@ -4054,7 +4060,7 @@
w_self.setdictvalue(space, 'context_expr', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'context_expr')
+ w_self.setdictvalue(space, 'context_expr', w_new_value)
w_self.initialization_state |= 4
def With_del_context_expr(space, w_self):
@@ -4083,7 +4089,7 @@
w_self.setdictvalue(space, 'optional_vars', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'optional_vars')
+ w_self.setdictvalue(space, 'optional_vars', w_new_value)
w_self.initialization_state |= 8
def With_del_optional_vars(space, w_self):
@@ -4161,7 +4167,7 @@
w_self.setdictvalue(space, 'type', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'type')
+ w_self.setdictvalue(space, 'type', w_new_value)
w_self.initialization_state |= 4
def Raise_del_type(space, w_self):
@@ -4190,7 +4196,7 @@
w_self.setdictvalue(space, 'inst', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'inst')
+ w_self.setdictvalue(space, 'inst', w_new_value)
w_self.initialization_state |= 8
def Raise_del_inst(space, w_self):
@@ -4219,7 +4225,7 @@
w_self.setdictvalue(space, 'tback', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'tback')
+ w_self.setdictvalue(space, 'tback', w_new_value)
w_self.initialization_state |= 16
def Raise_del_tback(space, w_self):
@@ -4440,7 +4446,7 @@
w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'test')
+ w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state |= 4
def Assert_del_test(space, w_self):
@@ -4469,7 +4475,7 @@
w_self.setdictvalue(space, 'msg', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'msg')
+ w_self.setdictvalue(space, 'msg', w_new_value)
w_self.initialization_state |= 8
def Assert_del_msg(space, w_self):
@@ -4571,7 +4577,7 @@
w_self.setdictvalue(space, 'module', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'module')
+ w_self.setdictvalue(space, 'module', w_new_value)
w_self.initialization_state |= 4
def ImportFrom_del_module(space, w_self):
@@ -4620,7 +4626,7 @@
w_self.setdictvalue(space, 'level', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'level')
+ w_self.setdictvalue(space, 'level', w_new_value)
w_self.initialization_state |= 16
def ImportFrom_del_level(space, w_self):
@@ -4676,7 +4682,7 @@
w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'body')
+ w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state |= 4
def Exec_del_body(space, w_self):
@@ -4705,7 +4711,7 @@
w_self.setdictvalue(space, 'globals', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'globals')
+ w_self.setdictvalue(space, 'globals', w_new_value)
w_self.initialization_state |= 8
def Exec_del_globals(space, w_self):
@@ -4734,7 +4740,7 @@
w_self.setdictvalue(space, 'locals', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'locals')
+ w_self.setdictvalue(space, 'locals', w_new_value)
w_self.initialization_state |= 16
def Exec_del_locals(space, w_self):
@@ -4836,7 +4842,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Expr_del_value(space, w_self):
@@ -4938,7 +4944,7 @@
w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'lineno')
+ w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state |= 1
def expr_del_lineno(space, w_self):
@@ -4965,7 +4971,7 @@
w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'col_offset')
+ w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state |= 2
def expr_del_col_offset(space, w_self):
@@ -5080,7 +5086,7 @@
w_self.setdictvalue(space, 'left', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'left')
+ w_self.setdictvalue(space, 'left', w_new_value)
w_self.initialization_state |= 4
def BinOp_del_left(space, w_self):
@@ -5138,7 +5144,7 @@
w_self.setdictvalue(space, 'right', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'right')
+ w_self.setdictvalue(space, 'right', w_new_value)
w_self.initialization_state |= 16
def BinOp_del_right(space, w_self):
@@ -5222,7 +5228,7 @@
w_self.setdictvalue(space, 'operand', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'operand')
+ w_self.setdictvalue(space, 'operand', w_new_value)
w_self.initialization_state |= 8
def UnaryOp_del_operand(space, w_self):
@@ -5274,7 +5280,7 @@
w_self.setdictvalue(space, 'args', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'args')
+ w_self.setdictvalue(space, 'args', w_new_value)
w_self.initialization_state |= 4
def Lambda_del_args(space, w_self):
@@ -5303,7 +5309,7 @@
w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'body')
+ w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state |= 8
def Lambda_del_body(space, w_self):
@@ -5357,7 +5363,7 @@
w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'test')
+ w_self.setdictvalue(space, 'test', w_new_value)
w_self.initialization_state |= 4
def IfExp_del_test(space, w_self):
@@ -5386,7 +5392,7 @@
w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'body')
+ w_self.setdictvalue(space, 'body', w_new_value)
w_self.initialization_state |= 8
def IfExp_del_body(space, w_self):
@@ -5415,7 +5421,7 @@
w_self.setdictvalue(space, 'orelse', w_new_value)
w_self.initialization_state &= ~16
return
- w_self.deldictvalue(space, 'orelse')
+ w_self.setdictvalue(space, 'orelse', w_new_value)
w_self.initialization_state |= 16
def IfExp_del_orelse(space, w_self):
@@ -5588,7 +5594,7 @@
w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'elt')
+ w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state |= 4
def ListComp_del_elt(space, w_self):
@@ -5665,7 +5671,7 @@
w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'elt')
+ w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state |= 4
def SetComp_del_elt(space, w_self):
@@ -5742,7 +5748,7 @@
w_self.setdictvalue(space, 'key', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'key')
+ w_self.setdictvalue(space, 'key', w_new_value)
w_self.initialization_state |= 4
def DictComp_del_key(space, w_self):
@@ -5771,7 +5777,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 8
def DictComp_del_value(space, w_self):
@@ -5849,7 +5855,7 @@
w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'elt')
+ w_self.setdictvalue(space, 'elt', w_new_value)
w_self.initialization_state |= 4
def GeneratorExp_del_elt(space, w_self):
@@ -5926,7 +5932,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Yield_del_value(space, w_self):
@@ -5979,7 +5985,7 @@
w_self.setdictvalue(space, 'left', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'left')
+ w_self.setdictvalue(space, 'left', w_new_value)
w_self.initialization_state |= 4
def Compare_del_left(space, w_self):
@@ -6080,7 +6086,7 @@
w_self.setdictvalue(space, 'func', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'func')
+ w_self.setdictvalue(space, 'func', w_new_value)
w_self.initialization_state |= 4
def Call_del_func(space, w_self):
@@ -6153,7 +6159,7 @@
w_self.setdictvalue(space, 'starargs', w_new_value)
w_self.initialization_state &= ~32
return
- w_self.deldictvalue(space, 'starargs')
+ w_self.setdictvalue(space, 'starargs', w_new_value)
w_self.initialization_state |= 32
def Call_del_starargs(space, w_self):
@@ -6182,7 +6188,7 @@
w_self.setdictvalue(space, 'kwargs', w_new_value)
w_self.initialization_state &= ~64
return
- w_self.deldictvalue(space, 'kwargs')
+ w_self.setdictvalue(space, 'kwargs', w_new_value)
w_self.initialization_state |= 64
def Call_del_kwargs(space, w_self):
@@ -6241,7 +6247,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Repr_del_value(space, w_self):
@@ -6292,7 +6298,7 @@
w_self.setdictvalue(space, 'n', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'n')
+ w_self.setdictvalue(space, 'n', w_new_value)
w_self.initialization_state |= 4
def Num_del_n(space, w_self):
@@ -6343,7 +6349,7 @@
w_self.setdictvalue(space, 's', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 's')
+ w_self.setdictvalue(space, 's', w_new_value)
w_self.initialization_state |= 4
def Str_del_s(space, w_self):
@@ -6396,7 +6402,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Attribute_del_value(space, w_self):
@@ -6423,7 +6429,7 @@
w_self.setdictvalue(space, 'attr', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'attr')
+ w_self.setdictvalue(space, 'attr', w_new_value)
w_self.initialization_state |= 8
def Attribute_del_attr(space, w_self):
@@ -6507,7 +6513,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Subscript_del_value(space, w_self):
@@ -6536,7 +6542,7 @@
w_self.setdictvalue(space, 'slice', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'slice')
+ w_self.setdictvalue(space, 'slice', w_new_value)
w_self.initialization_state |= 8
def Subscript_del_slice(space, w_self):
@@ -6618,7 +6624,7 @@
w_self.setdictvalue(space, 'id', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'id')
+ w_self.setdictvalue(space, 'id', w_new_value)
w_self.initialization_state |= 4
def Name_del_id(space, w_self):
@@ -6853,7 +6859,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 4
def Const_del_value(space, w_self):
@@ -6979,7 +6985,7 @@
w_self.setdictvalue(space, 'lower', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'lower')
+ w_self.setdictvalue(space, 'lower', w_new_value)
w_self.initialization_state |= 1
def Slice_del_lower(space, w_self):
@@ -7008,7 +7014,7 @@
w_self.setdictvalue(space, 'upper', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'upper')
+ w_self.setdictvalue(space, 'upper', w_new_value)
w_self.initialization_state |= 2
def Slice_del_upper(space, w_self):
@@ -7037,7 +7043,7 @@
w_self.setdictvalue(space, 'step', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'step')
+ w_self.setdictvalue(space, 'step', w_new_value)
w_self.initialization_state |= 4
def Slice_del_step(space, w_self):
@@ -7139,7 +7145,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 1
def Index_del_value(space, w_self):
@@ -7416,7 +7422,7 @@
w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'target')
+ w_self.setdictvalue(space, 'target', w_new_value)
w_self.initialization_state |= 1
def comprehension_del_target(space, w_self):
@@ -7445,7 +7451,7 @@
w_self.setdictvalue(space, 'iter', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'iter')
+ w_self.setdictvalue(space, 'iter', w_new_value)
w_self.initialization_state |= 2
def comprehension_del_iter(space, w_self):
@@ -7521,7 +7527,7 @@
w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'lineno')
+ w_self.setdictvalue(space, 'lineno', w_new_value)
w_self.initialization_state |= 1
def excepthandler_del_lineno(space, w_self):
@@ -7548,7 +7554,7 @@
w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'col_offset')
+ w_self.setdictvalue(space, 'col_offset', w_new_value)
w_self.initialization_state |= 2
def excepthandler_del_col_offset(space, w_self):
@@ -7586,7 +7592,7 @@
w_self.setdictvalue(space, 'type', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'type')
+ w_self.setdictvalue(space, 'type', w_new_value)
w_self.initialization_state |= 4
def ExceptHandler_del_type(space, w_self):
@@ -7615,7 +7621,7 @@
w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state &= ~8
return
- w_self.deldictvalue(space, 'name')
+ w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state |= 8
def ExceptHandler_del_name(space, w_self):
@@ -7716,7 +7722,7 @@
w_self.setdictvalue(space, 'vararg', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'vararg')
+ w_self.setdictvalue(space, 'vararg', w_new_value)
w_self.initialization_state |= 2
def arguments_del_vararg(space, w_self):
@@ -7746,7 +7752,7 @@
w_self.setdictvalue(space, 'kwarg', w_new_value)
w_self.initialization_state &= ~4
return
- w_self.deldictvalue(space, 'kwarg')
+ w_self.setdictvalue(space, 'kwarg', w_new_value)
w_self.initialization_state |= 4
def arguments_del_kwarg(space, w_self):
@@ -7824,7 +7830,7 @@
w_self.setdictvalue(space, 'arg', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'arg')
+ w_self.setdictvalue(space, 'arg', w_new_value)
w_self.initialization_state |= 1
def keyword_del_arg(space, w_self):
@@ -7853,7 +7859,7 @@
w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'value')
+ w_self.setdictvalue(space, 'value', w_new_value)
w_self.initialization_state |= 2
def keyword_del_value(space, w_self):
@@ -7905,7 +7911,7 @@
w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state &= ~1
return
- w_self.deldictvalue(space, 'name')
+ w_self.setdictvalue(space, 'name', w_new_value)
w_self.initialization_state |= 1
def alias_del_name(space, w_self):
@@ -7935,7 +7941,7 @@
w_self.setdictvalue(space, 'asname', w_new_value)
w_self.initialization_state &= ~2
return
- w_self.deldictvalue(space, 'asname')
+ w_self.setdictvalue(space, 'asname', w_new_value)
w_self.initialization_state |= 2
def alias_del_asname(space, w_self):
diff --git a/pypy/interpreter/astcompiler/tools/asdl_py.py b/pypy/interpreter/astcompiler/tools/asdl_py.py
--- a/pypy/interpreter/astcompiler/tools/asdl_py.py
+++ b/pypy/interpreter/astcompiler/tools/asdl_py.py
@@ -480,7 +480,9 @@
self.emit("w_self.setdictvalue(space, '%s', w_new_value)"
% (field.name,), 1)
else:
- self.emit("w_self.deldictvalue(space, '%s')" %(field.name,), 1)
+ #self.emit("w_self.deldictvalue(space, '%s')" %(field.name,), 1)
+ self.emit("w_self.setdictvalue(space, '%s', w_new_value)"
+ % (field.name,), 1)
self.emit("w_self.initialization_state |= %s" % (flag,), 1)
self.emit("")
@@ -596,13 +598,19 @@
w_type = space.type(self)
w_fields = w_type.getdictvalue(space, "_fields")
for w_name in space.fixedview(w_fields):
- space.setitem(w_dict, w_name,
+ try:
+ space.setitem(w_dict, w_name,
space.getattr(self, w_name))
+ except:
+ pass
w_attrs = space.findattr(w_type, space.wrap("_attributes"))
if w_attrs:
for w_name in space.fixedview(w_attrs):
- space.setitem(w_dict, w_name,
+ try:
+ space.setitem(w_dict, w_name,
space.getattr(self, w_name))
+ except:
+ pass
return space.newtuple([space.type(self),
space.newtuple([]),
w_dict])
More information about the pypy-commit
mailing list