forked from VimPlug/jedi
Fixed a very nasty bug in deep_ast_copy.
This commit is contained in:
@@ -51,7 +51,7 @@ def deep_ast_copy(obj, new_elements_default=None):
|
||||
# tree in there.
|
||||
items = sorted(items, key=sort_stmt)
|
||||
else:
|
||||
items = sorted(items, key=lambda x: x[0] != 'params')
|
||||
items = sorted(items, key=lambda x: (x[0] != 'params', x[0] == 'names_dict'))
|
||||
|
||||
# Actually copy and set attributes.
|
||||
new_obj = copy.copy(obj)
|
||||
|
||||
@@ -92,6 +92,11 @@ class Instance(use_metaclass(CachedMetaClass, Executed)):
|
||||
"""
|
||||
def __init__(self, evaluator, base, var_args, is_generated=False):
|
||||
super(Instance, self).__init__(evaluator, base, var_args)
|
||||
self.decorates = None
|
||||
# Generated instances are classes that are just generated by self
|
||||
# (No var_args) used.
|
||||
self.is_generated = is_generated
|
||||
|
||||
if base.name.get_code() in ['list', 'set'] \
|
||||
and compiled.builtin == base.get_parent_until():
|
||||
# compare the module path with the builtin name.
|
||||
@@ -105,10 +110,6 @@ class Instance(use_metaclass(CachedMetaClass, Executed)):
|
||||
pass
|
||||
else:
|
||||
evaluator.execute(method, self.var_args)
|
||||
# Generated instances are classes that are just generated by self
|
||||
# (No var_args) used.
|
||||
self.is_generated = is_generated
|
||||
self.decorates = None
|
||||
|
||||
@property
|
||||
def py__call__(self):
|
||||
@@ -622,6 +623,7 @@ class FunctionExecution(Executed):
|
||||
@common.safe_property
|
||||
@underscore_memoization
|
||||
def names_dict(self):
|
||||
self.children
|
||||
d = {}
|
||||
for key, values in self.base.names_dict.items():
|
||||
d[key] = self._copy_list(values)
|
||||
@@ -697,9 +699,10 @@ class FunctionExecution(Executed):
|
||||
@common.safe_property
|
||||
@memoize_default([])
|
||||
def children(self):
|
||||
children = self.base.children
|
||||
if isinstance(self.base, InstanceElement):
|
||||
children = self.base.var.children
|
||||
else:
|
||||
children = self.base.children
|
||||
return self._copy_list(children)
|
||||
|
||||
@common.safe_property
|
||||
|
||||
Reference in New Issue
Block a user