changed the way how the dynamic param function searches it's parent scope, to enable smooth list comprehension following

This commit is contained in:
Dave Halter
2014-06-22 13:48:30 +02:00
parent b7bf8d515c
commit 3e0f719915
3 changed files with 13 additions and 3 deletions

View File

@@ -95,7 +95,7 @@ def search_params(evaluator, param):
continue
scopes = [scope]
if first:
scopes = evaluator.eval_call_path(iter(first), scope, pos)
scopes = evaluator.eval_call_path(iter(first), c.parent, pos)
pos = None
from jedi.evaluate import representation as er
for scope in scopes:

View File

@@ -50,8 +50,12 @@ class NameFinder(object):
and isinstance(self.name_str.parent.parent, pr.Param)):
if not isinstance(self.name_str, (str, unicode)): # TODO Remove?
err_type = 'name-error' if search_global else 'attribute-error'
message = ('AttributeError: %s has no attribute %s'
% (self._last_filter_name_scope, self.name_str))
if err_type == 'name-error':
message = ("NameError: name '%s' is not defined."
% self.name_str)
else:
message = ('AttributeError: %s has no attribute %s.'
% (self._last_filter_name_scope, self.name_str))
analysis.add(self._evaluator, err_type, self.name_str, message,
payload=(self.scope, self.name_str))

View File

@@ -76,6 +76,12 @@ return_one(''.undefined_attribute)
[r for r in [1, 2]]
# some random error throw
class NotCalled():
def match_something(self, param):
seems_to_need_an_assignment = param
return [value.match_something() for value in []]
# -----------------
# decorators
# -----------------