mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-06 12:54:29 +08:00
Fix some stuff that caused issues in Jedi.
This commit is contained in:
@@ -139,7 +139,8 @@ class Parser(BaseParser):
|
||||
else:
|
||||
last_leaf = None
|
||||
|
||||
if typ == ENDMARKER or typ == DEDENT and '\n' not in last_leaf.value:
|
||||
if self._start_symbol == 'file_input' and \
|
||||
(typ == ENDMARKER or typ == DEDENT and '\n' not in last_leaf.value):
|
||||
def reduce_stack(states, newstate):
|
||||
# reduce
|
||||
state = newstate
|
||||
|
||||
@@ -73,7 +73,7 @@ class PythonMixin(object):
|
||||
scope = self
|
||||
while scope.parent is not None:
|
||||
parent = scope.parent
|
||||
if isinstance(scope, (PythonNode, PythonLeaf)) and parent.type != 'simple_stmt':
|
||||
if isinstance(scope, (PythonNode, PythonLeaf)) and parent.type not in ('simple_stmt', 'file_input'):
|
||||
if scope.type == 'testlist_comp':
|
||||
try:
|
||||
if scope.children[1].type == 'comp_for':
|
||||
|
||||
@@ -184,3 +184,18 @@ def test_dedent_at_end():
|
||||
suite = module.children[0].children[-1]
|
||||
foobar = suite.children[-1]
|
||||
assert foobar.type == 'name'
|
||||
|
||||
|
||||
def test_no_error_nodes():
|
||||
def check(node):
|
||||
assert node.type not in ('error_leaf', 'error_node')
|
||||
|
||||
try:
|
||||
children = node.children
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
for child in children:
|
||||
check(child)
|
||||
|
||||
check(parse("if foo:\n bar"))
|
||||
|
||||
Reference in New Issue
Block a user