Fix an issue that comes from a combination of property/__slots__/pickle

This commit is contained in:
Dave Halter
2015-02-02 00:45:17 +01:00
parent e913872192
commit c58cdbbf9b
2 changed files with 16 additions and 2 deletions

View File

@@ -62,6 +62,21 @@ class FastModule(pr.SubModule):
return "<fast.%s: %s@%s-%s>" % (type(self).__name__, self.name,
self.start_pos[0], self.end_pos[0])
# To avoid issues with with the `parser.Parser`, we need setters that do
# nothing, because if pickle comes along and sets those values.
@global_names.setter
def global_names(self, value):
pass
@error_statement_stacks.setter
def error_statement_stacks(self, value):
pass
@used_names.setter
def used_names(self, value):
pass
class MergedNamesDict(object):
def __init__(self, dicts):

View File

@@ -614,7 +614,7 @@ class SubModule(Scope, Module):
of a module.
"""
__slots__ = ('path', 'global_names', 'used_names', '_name',
'use_as_parent', 'error_statement_stacks')
'error_statement_stacks')
type = 'file_input'
def __init__(self, children):
@@ -628,7 +628,6 @@ class SubModule(Scope, Module):
"""
super(SubModule, self).__init__(children)
self.path = None # Set later.
# this may be changed depending on fast_parser
@property
@cache.underscore_memoization