1
0
forked from VimPlug/jedi

Fix a recursion error, fixes #1173

This commit is contained in:
Dave Halter
2018-07-18 10:01:41 +02:00
parent 3cabc4b969
commit a408fb3211
3 changed files with 33 additions and 14 deletions

View File

@@ -65,7 +65,7 @@ def execution_allowed(evaluator, node):
if node in pushed_nodes:
debug.warning('catched stmt recursion: %s @%s', node,
node.start_pos)
getattr(node, 'start_pos', None))
yield False
else:
try:
@@ -77,14 +77,14 @@ def execution_allowed(evaluator, node):
def execution_recursion_decorator(default=NO_CONTEXTS):
def decorator(func):
def wrapper(execution, **kwargs):
detector = execution.evaluator.execution_recursion_detector
allowed = detector.push_execution(execution)
def wrapper(self, **kwargs):
detector = self.evaluator.execution_recursion_detector
allowed = detector.push_execution(self)
try:
if allowed:
result = default
else:
result = func(execution, **kwargs)
result = func(self, **kwargs)
finally:
detector.pop_execution()
return result