mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 14:04:26 +08:00
Fix get_parent_scope
This commit is contained in:
@@ -243,14 +243,16 @@ def get_parent_scope(node, include_flows=False):
|
||||
Returns the underlying scope.
|
||||
"""
|
||||
scope = node.parent
|
||||
if scope is None:
|
||||
return None # It's a module already.
|
||||
if scope.type in ('funcdef', 'classdef') and scope.name == node:
|
||||
scope = scope.parent
|
||||
if scope.parent is None: # The module scope.
|
||||
return scope
|
||||
|
||||
while scope is not None:
|
||||
if include_flows and isinstance(scope, tree.Flow):
|
||||
while True:
|
||||
if include_flows and isinstance(scope, tree.Flow) or is_scope(scope):
|
||||
return scope
|
||||
if is_scope(scope):
|
||||
break
|
||||
scope = scope.parent
|
||||
return scope
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ def test_function_call_signature_in_doc(Script):
|
||||
|
||||
|
||||
def test_param_docstring():
|
||||
param = jedi.names("def test(parameter): pass")[1]
|
||||
param = jedi.names("def test(parameter): pass", all_scopes=True)[1]
|
||||
assert param.name == 'parameter'
|
||||
assert param.docstring() == ''
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ def test_namedtuple_list(Script):
|
||||
assert completions == {'legs', 'length', 'large'}
|
||||
|
||||
|
||||
@pytest.mark.skip(reason='TODO Please remove this once typeshed is merged')
|
||||
def test_namedtuple_content(Script):
|
||||
source = dedent("""\
|
||||
import collections
|
||||
|
||||
Reference in New Issue
Block a user