forked from VimPlug/jedi
Fix some stuff to make parso work again.
This commit is contained in:
@@ -458,7 +458,7 @@ def names(source=None, path=None, encoding='utf-8', all_scopes=False,
|
||||
classes.Definition(
|
||||
script._evaluator,
|
||||
TreeNameDefinition(
|
||||
module_context.create_context(name.parent),
|
||||
module_context.create_context(name if name.parent.type == 'file_input' else name.parent),
|
||||
name
|
||||
)
|
||||
) for name in get_module_names(script._get_module_node(), all_scopes)
|
||||
|
||||
@@ -98,6 +98,7 @@ def _get_code_for_stack(code_lines, module_node, position):
|
||||
user_stmt = leaf.parent
|
||||
else:
|
||||
user_stmt = leaf.get_definition()
|
||||
|
||||
if user_stmt.parent.type == 'simple_stmt':
|
||||
user_stmt = user_stmt.parent
|
||||
|
||||
|
||||
@@ -449,10 +449,9 @@ class Evaluator(object):
|
||||
if is_simple_name:
|
||||
if name.parent.type == 'classdef' and name.parent.name == name:
|
||||
return [er.ClassContext(self, name.parent, context)]
|
||||
elif name.parent.type == 'funcdef':
|
||||
elif name.parent.type == 'funcdef' and name.parent.name == name:
|
||||
return [er.FunctionContext(self, context, name.parent)]
|
||||
elif name.parent.type == 'file_input':
|
||||
raise NotImplementedError
|
||||
|
||||
if def_.type == 'expr_stmt' and name in def_.get_defined_names():
|
||||
return self.eval_statement(context, def_, name)
|
||||
elif def_.type == 'for_stmt' and \
|
||||
@@ -592,7 +591,7 @@ class Evaluator(object):
|
||||
if node_is_context and parser_utils.is_scope(node):
|
||||
scope_node = node
|
||||
else:
|
||||
if node.parent.type in ('funcdef', 'classdef'):
|
||||
if node.parent.type in ('funcdef', 'classdef') and node.parent.name == node:
|
||||
# When we're on class/function names/leafs that define the
|
||||
# object itself and not its contents.
|
||||
node = node.parent
|
||||
|
||||
Reference in New Issue
Block a user