From 857a9b76217330cb9fa8ac5719f6cb1b64029ed6 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 15 May 2014 12:39:00 +0200 Subject: [PATCH] don't raise attribute NameErrors in all for loop name definitions. --- jedi/api/__init__.py | 3 ++- test/static_analysis/attribute_error.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index fe077969..e27b0bf7 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -595,7 +595,8 @@ class Script(object): nested_resolve=True).follow() if stmt.is_nested() and any(not isinstance(i, pr.Module) for i in imps): analysis.add(self._evaluator, 'import-error', stmt) - else: + elif not (isinstance(stmt.parent, pr.ForFlow) + and stmt.parent.set_stmt == stmt): self._evaluator.eval_statement(stmt) ana = [a for a in self._evaluator.analysis if self.path == a.path] diff --git a/test/static_analysis/attribute_error.py b/test/static_analysis/attribute_error.py index d010c7e6..3061502a 100644 --- a/test/static_analysis/attribute_error.py +++ b/test/static_analysis/attribute_error.py @@ -43,3 +43,10 @@ c.something = None #! name-error something = a something + + +# should not raise anything. +for loop_variable in [1, 2]: + #! name-error + x = undefined + loop_variable