Specially crafted docstrings sometimes lead to errors, fixes #1103

This commit is contained in:
Dave Halter
2018-04-25 21:04:05 +02:00
parent ba96c21f83
commit 91499565a9
3 changed files with 16 additions and 3 deletions
+3
View File
@@ -214,6 +214,9 @@ def _evaluate_for_statement_string(module_context, string):
except (AttributeError, IndexError):
return []
if stmt.type not in ('name', 'atom', 'atom_expr'):
return []
from jedi.evaluate.context import FunctionContext
function_context = FunctionContext(
module_context.evaluator,
+4 -2
View File
@@ -74,8 +74,10 @@ def eval_node(context, element):
# For False/True/None
if element.value in ('False', 'True', 'None'):
return ContextSet(compiled.builtin_from_name(evaluator, element.value))
# else: print e.g. could be evaluated like this in Python 2.7
return NO_CONTEXTS
if element.value == 'print':
# print e.g. could be evaluated like this in Python 2.7
return NO_CONTEXTS
assert False, 'Cannot evaluate the keyword %s' % element
elif typ == 'lambdef':
return ContextSet(FunctionContext(evaluator, context, element))
elif typ == 'expr_stmt':