1
0
forked from VimPlug/jedi

Fix the fast parser issue #589.

This commit is contained in:
Dave Halter
2016-06-05 14:42:32 +02:00
parent 12f878a4f7
commit aa97e4e714
2 changed files with 9 additions and 5 deletions

View File

@@ -424,14 +424,12 @@ class FastParser(use_metaclass(CachedFastParser)):
""" """
Side effect: Alters the list of nodes. Side effect: Alters the list of nodes.
""" """
indent = len(source) - len(source.lstrip('\t '))
self.current_node = self.current_node.parent_until_indent(indent)
h = hash(source) h = hash(source)
for index, node in enumerate(nodes): for index, node in enumerate(nodes):
if node.hash == h and node.source == source: if node.hash == h and node.source == source:
node.reset_node() node.reset_node()
nodes.remove(node) nodes.remove(node)
parser_code = source
break break
else: else:
tokenizer = FastTokenizer(parser_code) tokenizer = FastTokenizer(parser_code)
@@ -444,6 +442,9 @@ class FastParser(use_metaclass(CachedFastParser)):
node = ParserNode(self.module, p, code_part_actually_used) node = ParserNode(self.module, p, code_part_actually_used)
indent = len(parser_code) - len(parser_code.lstrip('\t '))
self.current_node = self.current_node.parent_until_indent(indent)
self.current_node.add_node(node, line_offset) self.current_node.add_node(node, line_offset)
return node return node

View File

@@ -447,11 +447,14 @@ def test_decorator_string_issue():
""" """
Test case from #589 Test case from #589
""" """
s = jedi.Script(dedent('''\ source = dedent('''\
""" """
@""" @"""
def bla(): def bla():
pass pass
bla.''')) bla.''')
s = jedi.Script(source)
assert s.completions() assert s.completions()
assert s._parser.module().get_code() == source