[pypy-commit] pypy fix-tpname: different approach for making _ast classes heaptypes
bdkearns
noreply at buildbot.pypy.org
Fri May 2 05:48:59 CEST 2014
Author: Brian Kearns <bdkearns at gmail.com>
Branch: fix-tpname
Changeset: r71181:f84ebaac41fd
Date: 2014-05-01 23:48 -0400
http://bitbucket.org/pypy/pypy/changeset/f84ebaac41fd/
Log: different approach for making _ast classes heaptypes
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
@@ -2803,6 +2803,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(mod)),
)
+mod.typedef.heaptype = True
def Module_get_body(space, w_self):
if not w_self.initialization_state & 1:
@@ -2850,6 +2851,7 @@
__new__=interp2app(get_AST_new(Module)),
__init__=interp2app(Module_init),
)
+Module.typedef.heaptype = True
def Interactive_get_body(space, w_self):
if not w_self.initialization_state & 1:
@@ -2897,6 +2899,7 @@
__new__=interp2app(get_AST_new(Interactive)),
__init__=interp2app(Interactive_init),
)
+Interactive.typedef.heaptype = True
def Expression_get_body(space, w_self):
if w_self.w_dict is not None:
@@ -2950,6 +2953,7 @@
__new__=interp2app(get_AST_new(Expression)),
__init__=interp2app(Expression_init),
)
+Expression.typedef.heaptype = True
def Suite_get_body(space, w_self):
if not w_self.initialization_state & 1:
@@ -2997,6 +3001,7 @@
__new__=interp2app(get_AST_new(Suite)),
__init__=interp2app(Suite_init),
)
+Suite.typedef.heaptype = True
def stmt_get_lineno(space, w_self):
if w_self.w_dict is not None:
@@ -3062,6 +3067,7 @@
col_offset=typedef.GetSetProperty(stmt_get_col_offset, stmt_set_col_offset, stmt_del_col_offset, cls=stmt),
__new__=interp2app(get_AST_new(stmt)),
)
+stmt.typedef.heaptype = True
def FunctionDef_get_name(space, w_self):
if w_self.w_dict is not None:
@@ -3190,6 +3196,7 @@
__new__=interp2app(get_AST_new(FunctionDef)),
__init__=interp2app(FunctionDef_init),
)
+FunctionDef.typedef.heaptype = True
def ClassDef_get_name(space, w_self):
if w_self.w_dict is not None:
@@ -3314,6 +3321,7 @@
__new__=interp2app(get_AST_new(ClassDef)),
__init__=interp2app(ClassDef_init),
)
+ClassDef.typedef.heaptype = True
def Return_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -3367,6 +3375,7 @@
__new__=interp2app(get_AST_new(Return)),
__init__=interp2app(Return_init),
)
+Return.typedef.heaptype = True
def Delete_get_targets(space, w_self):
if not w_self.initialization_state & 4:
@@ -3414,6 +3423,7 @@
__new__=interp2app(get_AST_new(Delete)),
__init__=interp2app(Delete_init),
)
+Delete.typedef.heaptype = True
def Assign_get_targets(space, w_self):
if not w_self.initialization_state & 4:
@@ -3491,6 +3501,7 @@
__new__=interp2app(get_AST_new(Assign)),
__init__=interp2app(Assign_init),
)
+Assign.typedef.heaptype = True
def AugAssign_get_target(space, w_self):
if w_self.w_dict is not None:
@@ -3604,6 +3615,7 @@
__new__=interp2app(get_AST_new(AugAssign)),
__init__=interp2app(AugAssign_init),
)
+AugAssign.typedef.heaptype = True
def Print_get_dest(space, w_self):
if w_self.w_dict is not None:
@@ -3710,6 +3722,7 @@
__new__=interp2app(get_AST_new(Print)),
__init__=interp2app(Print_init),
)
+Print.typedef.heaptype = True
def For_get_target(space, w_self):
if w_self.w_dict is not None:
@@ -3841,6 +3854,7 @@
__new__=interp2app(get_AST_new(For)),
__init__=interp2app(For_init),
)
+For.typedef.heaptype = True
def While_get_test(space, w_self):
if w_self.w_dict is not None:
@@ -3942,6 +3956,7 @@
__new__=interp2app(get_AST_new(While)),
__init__=interp2app(While_init),
)
+While.typedef.heaptype = True
def If_get_test(space, w_self):
if w_self.w_dict is not None:
@@ -4043,6 +4058,7 @@
__new__=interp2app(get_AST_new(If)),
__init__=interp2app(If_init),
)
+If.typedef.heaptype = True
def With_get_context_expr(space, w_self):
if w_self.w_dict is not None:
@@ -4150,6 +4166,7 @@
__new__=interp2app(get_AST_new(With)),
__init__=interp2app(With_init),
)
+With.typedef.heaptype = True
def Raise_get_type(space, w_self):
if w_self.w_dict is not None:
@@ -4263,6 +4280,7 @@
__new__=interp2app(get_AST_new(Raise)),
__init__=interp2app(Raise_init),
)
+Raise.typedef.heaptype = True
def TryExcept_get_body(space, w_self):
if not w_self.initialization_state & 4:
@@ -4358,6 +4376,7 @@
__new__=interp2app(get_AST_new(TryExcept)),
__init__=interp2app(TryExcept_init),
)
+TryExcept.typedef.heaptype = True
def TryFinally_get_body(space, w_self):
if not w_self.initialization_state & 4:
@@ -4429,6 +4448,7 @@
__new__=interp2app(get_AST_new(TryFinally)),
__init__=interp2app(TryFinally_init),
)
+TryFinally.typedef.heaptype = True
def Assert_get_test(space, w_self):
if w_self.w_dict is not None:
@@ -4512,6 +4532,7 @@
__new__=interp2app(get_AST_new(Assert)),
__init__=interp2app(Assert_init),
)
+Assert.typedef.heaptype = True
def Import_get_names(space, w_self):
if not w_self.initialization_state & 4:
@@ -4559,6 +4580,7 @@
__new__=interp2app(get_AST_new(Import)),
__init__=interp2app(Import_init),
)
+Import.typedef.heaptype = True
def ImportFrom_get_module(space, w_self):
if w_self.w_dict is not None:
@@ -4667,6 +4689,7 @@
__new__=interp2app(get_AST_new(ImportFrom)),
__init__=interp2app(ImportFrom_init),
)
+ImportFrom.typedef.heaptype = True
def Exec_get_body(space, w_self):
if w_self.w_dict is not None:
@@ -4780,6 +4803,7 @@
__new__=interp2app(get_AST_new(Exec)),
__init__=interp2app(Exec_init),
)
+Exec.typedef.heaptype = True
def Global_get_names(space, w_self):
if not w_self.initialization_state & 4:
@@ -4827,6 +4851,7 @@
__new__=interp2app(get_AST_new(Global)),
__init__=interp2app(Global_init),
)
+Global.typedef.heaptype = True
def Expr_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -4880,6 +4905,7 @@
__new__=interp2app(get_AST_new(Expr)),
__init__=interp2app(Expr_init),
)
+Expr.typedef.heaptype = True
def Pass_init(space, w_self, __args__):
w_self = space.descr_self_interp_w(Pass, w_self)
@@ -4897,6 +4923,7 @@
__new__=interp2app(get_AST_new(Pass)),
__init__=interp2app(Pass_init),
)
+Pass.typedef.heaptype = True
def Break_init(space, w_self, __args__):
w_self = space.descr_self_interp_w(Break, w_self)
@@ -4914,6 +4941,7 @@
__new__=interp2app(get_AST_new(Break)),
__init__=interp2app(Break_init),
)
+Break.typedef.heaptype = True
def Continue_init(space, w_self, __args__):
w_self = space.descr_self_interp_w(Continue, w_self)
@@ -4931,6 +4959,7 @@
__new__=interp2app(get_AST_new(Continue)),
__init__=interp2app(Continue_init),
)
+Continue.typedef.heaptype = True
def expr_get_lineno(space, w_self):
if w_self.w_dict is not None:
@@ -4996,6 +5025,7 @@
col_offset=typedef.GetSetProperty(expr_get_col_offset, expr_set_col_offset, expr_del_col_offset, cls=expr),
__new__=interp2app(get_AST_new(expr)),
)
+expr.typedef.heaptype = True
def BoolOp_get_op(space, w_self):
if w_self.w_dict is not None:
@@ -5073,6 +5103,7 @@
__new__=interp2app(get_AST_new(BoolOp)),
__init__=interp2app(BoolOp_init),
)
+BoolOp.typedef.heaptype = True
def BinOp_get_left(space, w_self):
if w_self.w_dict is not None:
@@ -5186,6 +5217,7 @@
__new__=interp2app(get_AST_new(BinOp)),
__init__=interp2app(BinOp_init),
)
+BinOp.typedef.heaptype = True
def UnaryOp_get_op(space, w_self):
if w_self.w_dict is not None:
@@ -5269,6 +5301,7 @@
__new__=interp2app(get_AST_new(UnaryOp)),
__init__=interp2app(UnaryOp_init),
)
+UnaryOp.typedef.heaptype = True
def Lambda_get_args(space, w_self):
if w_self.w_dict is not None:
@@ -5350,6 +5383,7 @@
__new__=interp2app(get_AST_new(Lambda)),
__init__=interp2app(Lambda_init),
)
+Lambda.typedef.heaptype = True
def IfExp_get_test(space, w_self):
if w_self.w_dict is not None:
@@ -5463,6 +5497,7 @@
__new__=interp2app(get_AST_new(IfExp)),
__init__=interp2app(IfExp_init),
)
+IfExp.typedef.heaptype = True
def Dict_get_keys(space, w_self):
if not w_self.initialization_state & 4:
@@ -5534,6 +5569,7 @@
__new__=interp2app(get_AST_new(Dict)),
__init__=interp2app(Dict_init),
)
+Dict.typedef.heaptype = True
def Set_get_elts(space, w_self):
if not w_self.initialization_state & 4:
@@ -5581,6 +5617,7 @@
__new__=interp2app(get_AST_new(Set)),
__init__=interp2app(Set_init),
)
+Set.typedef.heaptype = True
def ListComp_get_elt(space, w_self):
if w_self.w_dict is not None:
@@ -5658,6 +5695,7 @@
__new__=interp2app(get_AST_new(ListComp)),
__init__=interp2app(ListComp_init),
)
+ListComp.typedef.heaptype = True
def SetComp_get_elt(space, w_self):
if w_self.w_dict is not None:
@@ -5735,6 +5773,7 @@
__new__=interp2app(get_AST_new(SetComp)),
__init__=interp2app(SetComp_init),
)
+SetComp.typedef.heaptype = True
def DictComp_get_key(space, w_self):
if w_self.w_dict is not None:
@@ -5842,6 +5881,7 @@
__new__=interp2app(get_AST_new(DictComp)),
__init__=interp2app(DictComp_init),
)
+DictComp.typedef.heaptype = True
def GeneratorExp_get_elt(space, w_self):
if w_self.w_dict is not None:
@@ -5919,6 +5959,7 @@
__new__=interp2app(get_AST_new(GeneratorExp)),
__init__=interp2app(GeneratorExp_init),
)
+GeneratorExp.typedef.heaptype = True
def Yield_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -5972,6 +6013,7 @@
__new__=interp2app(get_AST_new(Yield)),
__init__=interp2app(Yield_init),
)
+Yield.typedef.heaptype = True
def Compare_get_left(space, w_self):
if w_self.w_dict is not None:
@@ -6073,6 +6115,7 @@
__new__=interp2app(get_AST_new(Compare)),
__init__=interp2app(Compare_init),
)
+Compare.typedef.heaptype = True
def Call_get_func(space, w_self):
if w_self.w_dict is not None:
@@ -6234,6 +6277,7 @@
__new__=interp2app(get_AST_new(Call)),
__init__=interp2app(Call_init),
)
+Call.typedef.heaptype = True
def Repr_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -6287,6 +6331,7 @@
__new__=interp2app(get_AST_new(Repr)),
__init__=interp2app(Repr_init),
)
+Repr.typedef.heaptype = True
def Num_get_n(space, w_self):
if w_self.w_dict is not None:
@@ -6339,6 +6384,7 @@
__new__=interp2app(get_AST_new(Num)),
__init__=interp2app(Num_init),
)
+Num.typedef.heaptype = True
def Str_get_s(space, w_self):
if w_self.w_dict is not None:
@@ -6391,6 +6437,7 @@
__new__=interp2app(get_AST_new(Str)),
__init__=interp2app(Str_init),
)
+Str.typedef.heaptype = True
def Attribute_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -6503,6 +6550,7 @@
__new__=interp2app(get_AST_new(Attribute)),
__init__=interp2app(Attribute_init),
)
+Attribute.typedef.heaptype = True
def Subscript_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -6616,6 +6664,7 @@
__new__=interp2app(get_AST_new(Subscript)),
__init__=interp2app(Subscript_init),
)
+Subscript.typedef.heaptype = True
def Name_get_id(space, w_self):
if w_self.w_dict is not None:
@@ -6698,6 +6747,7 @@
__new__=interp2app(get_AST_new(Name)),
__init__=interp2app(Name_init),
)
+Name.typedef.heaptype = True
def List_get_elts(space, w_self):
if not w_self.initialization_state & 4:
@@ -6775,6 +6825,7 @@
__new__=interp2app(get_AST_new(List)),
__init__=interp2app(List_init),
)
+List.typedef.heaptype = True
def Tuple_get_elts(space, w_self):
if not w_self.initialization_state & 4:
@@ -6852,6 +6903,7 @@
__new__=interp2app(get_AST_new(Tuple)),
__init__=interp2app(Tuple_init),
)
+Tuple.typedef.heaptype = True
def Const_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -6904,6 +6956,7 @@
__new__=interp2app(get_AST_new(Const)),
__init__=interp2app(Const_init),
)
+Const.typedef.heaptype = True
expr_context.typedef = typedef.TypeDef("expr_context",
AST.typedef,
@@ -6911,6 +6964,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(expr_context)),
)
+expr_context.typedef.heaptype = True
_Load.typedef = typedef.TypeDef("Load",
expr_context.typedef,
@@ -6918,6 +6972,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Load)),
)
+_Load.typedef.heaptype = True
_Store.typedef = typedef.TypeDef("Store",
expr_context.typedef,
@@ -6925,6 +6980,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Store)),
)
+_Store.typedef.heaptype = True
_Del.typedef = typedef.TypeDef("Del",
expr_context.typedef,
@@ -6932,6 +6988,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Del)),
)
+_Del.typedef.heaptype = True
_AugLoad.typedef = typedef.TypeDef("AugLoad",
expr_context.typedef,
@@ -6939,6 +6996,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_AugLoad)),
)
+_AugLoad.typedef.heaptype = True
_AugStore.typedef = typedef.TypeDef("AugStore",
expr_context.typedef,
@@ -6946,6 +7004,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_AugStore)),
)
+_AugStore.typedef.heaptype = True
_Param.typedef = typedef.TypeDef("Param",
expr_context.typedef,
@@ -6953,6 +7012,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Param)),
)
+_Param.typedef.heaptype = True
slice.typedef = typedef.TypeDef("slice",
AST.typedef,
@@ -6960,6 +7020,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(slice)),
)
+slice.typedef.heaptype = True
def Ellipsis_init(space, w_self, __args__):
w_self = space.descr_self_interp_w(Ellipsis, w_self)
@@ -6977,6 +7038,7 @@
__new__=interp2app(get_AST_new(Ellipsis)),
__init__=interp2app(Ellipsis_init),
)
+Ellipsis.typedef.heaptype = True
def Slice_get_lower(space, w_self):
if w_self.w_dict is not None:
@@ -7090,6 +7152,7 @@
__new__=interp2app(get_AST_new(Slice)),
__init__=interp2app(Slice_init),
)
+Slice.typedef.heaptype = True
def ExtSlice_get_dims(space, w_self):
if not w_self.initialization_state & 1:
@@ -7137,6 +7200,7 @@
__new__=interp2app(get_AST_new(ExtSlice)),
__init__=interp2app(ExtSlice_init),
)
+ExtSlice.typedef.heaptype = True
def Index_get_value(space, w_self):
if w_self.w_dict is not None:
@@ -7190,6 +7254,7 @@
__new__=interp2app(get_AST_new(Index)),
__init__=interp2app(Index_init),
)
+Index.typedef.heaptype = True
boolop.typedef = typedef.TypeDef("boolop",
AST.typedef,
@@ -7197,6 +7262,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(boolop)),
)
+boolop.typedef.heaptype = True
_And.typedef = typedef.TypeDef("And",
boolop.typedef,
@@ -7204,6 +7270,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_And)),
)
+_And.typedef.heaptype = True
_Or.typedef = typedef.TypeDef("Or",
boolop.typedef,
@@ -7211,6 +7278,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Or)),
)
+_Or.typedef.heaptype = True
operator.typedef = typedef.TypeDef("operator",
AST.typedef,
@@ -7218,6 +7286,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(operator)),
)
+operator.typedef.heaptype = True
_Add.typedef = typedef.TypeDef("Add",
operator.typedef,
@@ -7225,6 +7294,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Add)),
)
+_Add.typedef.heaptype = True
_Sub.typedef = typedef.TypeDef("Sub",
operator.typedef,
@@ -7232,6 +7302,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Sub)),
)
+_Sub.typedef.heaptype = True
_Mult.typedef = typedef.TypeDef("Mult",
operator.typedef,
@@ -7239,6 +7310,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Mult)),
)
+_Mult.typedef.heaptype = True
_Div.typedef = typedef.TypeDef("Div",
operator.typedef,
@@ -7246,6 +7318,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Div)),
)
+_Div.typedef.heaptype = True
_Mod.typedef = typedef.TypeDef("Mod",
operator.typedef,
@@ -7253,6 +7326,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Mod)),
)
+_Mod.typedef.heaptype = True
_Pow.typedef = typedef.TypeDef("Pow",
operator.typedef,
@@ -7260,6 +7334,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Pow)),
)
+_Pow.typedef.heaptype = True
_LShift.typedef = typedef.TypeDef("LShift",
operator.typedef,
@@ -7267,6 +7342,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_LShift)),
)
+_LShift.typedef.heaptype = True
_RShift.typedef = typedef.TypeDef("RShift",
operator.typedef,
@@ -7274,6 +7350,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_RShift)),
)
+_RShift.typedef.heaptype = True
_BitOr.typedef = typedef.TypeDef("BitOr",
operator.typedef,
@@ -7281,6 +7358,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_BitOr)),
)
+_BitOr.typedef.heaptype = True
_BitXor.typedef = typedef.TypeDef("BitXor",
operator.typedef,
@@ -7288,6 +7366,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_BitXor)),
)
+_BitXor.typedef.heaptype = True
_BitAnd.typedef = typedef.TypeDef("BitAnd",
operator.typedef,
@@ -7295,6 +7374,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_BitAnd)),
)
+_BitAnd.typedef.heaptype = True
_FloorDiv.typedef = typedef.TypeDef("FloorDiv",
operator.typedef,
@@ -7302,6 +7382,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_FloorDiv)),
)
+_FloorDiv.typedef.heaptype = True
unaryop.typedef = typedef.TypeDef("unaryop",
AST.typedef,
@@ -7309,6 +7390,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(unaryop)),
)
+unaryop.typedef.heaptype = True
_Invert.typedef = typedef.TypeDef("Invert",
unaryop.typedef,
@@ -7316,6 +7398,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Invert)),
)
+_Invert.typedef.heaptype = True
_Not.typedef = typedef.TypeDef("Not",
unaryop.typedef,
@@ -7323,6 +7406,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Not)),
)
+_Not.typedef.heaptype = True
_UAdd.typedef = typedef.TypeDef("UAdd",
unaryop.typedef,
@@ -7330,6 +7414,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_UAdd)),
)
+_UAdd.typedef.heaptype = True
_USub.typedef = typedef.TypeDef("USub",
unaryop.typedef,
@@ -7337,6 +7422,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_USub)),
)
+_USub.typedef.heaptype = True
cmpop.typedef = typedef.TypeDef("cmpop",
AST.typedef,
@@ -7344,6 +7430,7 @@
_attributes=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(cmpop)),
)
+cmpop.typedef.heaptype = True
_Eq.typedef = typedef.TypeDef("Eq",
cmpop.typedef,
@@ -7351,6 +7438,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Eq)),
)
+_Eq.typedef.heaptype = True
_NotEq.typedef = typedef.TypeDef("NotEq",
cmpop.typedef,
@@ -7358,6 +7446,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_NotEq)),
)
+_NotEq.typedef.heaptype = True
_Lt.typedef = typedef.TypeDef("Lt",
cmpop.typedef,
@@ -7365,6 +7454,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Lt)),
)
+_Lt.typedef.heaptype = True
_LtE.typedef = typedef.TypeDef("LtE",
cmpop.typedef,
@@ -7372,6 +7462,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_LtE)),
)
+_LtE.typedef.heaptype = True
_Gt.typedef = typedef.TypeDef("Gt",
cmpop.typedef,
@@ -7379,6 +7470,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Gt)),
)
+_Gt.typedef.heaptype = True
_GtE.typedef = typedef.TypeDef("GtE",
cmpop.typedef,
@@ -7386,6 +7478,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_GtE)),
)
+_GtE.typedef.heaptype = True
_Is.typedef = typedef.TypeDef("Is",
cmpop.typedef,
@@ -7393,6 +7486,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_Is)),
)
+_Is.typedef.heaptype = True
_IsNot.typedef = typedef.TypeDef("IsNot",
cmpop.typedef,
@@ -7400,6 +7494,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_IsNot)),
)
+_IsNot.typedef.heaptype = True
_In.typedef = typedef.TypeDef("In",
cmpop.typedef,
@@ -7407,6 +7502,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_In)),
)
+_In.typedef.heaptype = True
_NotIn.typedef = typedef.TypeDef("NotIn",
cmpop.typedef,
@@ -7414,6 +7510,7 @@
_fields=_FieldsWrapper([]),
__new__=interp2app(get_AST_new(_NotIn)),
)
+_NotIn.typedef.heaptype = True
def comprehension_get_target(space, w_self):
if w_self.w_dict is not None:
@@ -7521,6 +7618,7 @@
__new__=interp2app(get_AST_new(comprehension)),
__init__=interp2app(comprehension_init),
)
+comprehension.typedef.heaptype = True
def excepthandler_get_lineno(space, w_self):
if w_self.w_dict is not None:
@@ -7586,6 +7684,7 @@
col_offset=typedef.GetSetProperty(excepthandler_get_col_offset, excepthandler_set_col_offset, excepthandler_del_col_offset, cls=excepthandler),
__new__=interp2app(get_AST_new(excepthandler)),
)
+excepthandler.typedef.heaptype = True
def ExceptHandler_get_type(space, w_self):
if w_self.w_dict is not None:
@@ -7693,6 +7792,7 @@
__new__=interp2app(get_AST_new(ExceptHandler)),
__init__=interp2app(ExceptHandler_init),
)
+ExceptHandler.typedef.heaptype = True
def arguments_get_args(space, w_self):
if not w_self.initialization_state & 1:
@@ -7828,6 +7928,7 @@
__new__=interp2app(get_AST_new(arguments)),
__init__=interp2app(arguments_init),
)
+arguments.typedef.heaptype = True
def keyword_get_arg(space, w_self):
if w_self.w_dict is not None:
@@ -7910,6 +8011,7 @@
__new__=interp2app(get_AST_new(keyword)),
__init__=interp2app(keyword_init),
)
+keyword.typedef.heaptype = True
def alias_get_name(space, w_self):
if w_self.w_dict is not None:
@@ -7994,4 +8096,5 @@
__new__=interp2app(get_AST_new(alias)),
__init__=interp2app(alias_init),
)
-
+alias.typedef.heaptype = True
+
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
@@ -352,6 +352,7 @@
if needs_init:
self.emit("__init__=interp2app(%s_init)," % (name,), 1)
self.emit(")")
+ self.emit("%s.typedef.heaptype = True" % name)
self.emit("")
def make_init(self, name, fields):
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -22,6 +22,7 @@
else:
bases = [__base]
self.bases = bases
+ self.heaptype = False
self.hasdict = '__dict__' in rawdict
self.weakrefable = '__weakref__' in rawdict
self.doc = rawdict.pop('__doc__', None)
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -997,7 +997,7 @@
w_self.weakrefable = w_self.instancetypedef.weakrefable
w_self.w_doc = w_self.space.wrap(w_self.instancetypedef.doc)
ensure_common_attributes(w_self)
- w_self.flag_heaptype = '__module__' in w_self.instancetypedef.rawdict
+ w_self.flag_heaptype = w_self.instancetypedef.heaptype
def ensure_common_attributes(w_self):
ensure_static_new(w_self)
More information about the pypy-commit
mailing list