diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index ad943b91..1739c129 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -588,14 +588,12 @@ class Script(object): def _analysis(self): statements = set(chain(*self._parser.module().used_names.values())) for stmt in statements: - if stmt.start_pos[0] != 254: - continue if isinstance(stmt, pr.Import): imports.strip_imports(self._evaluator, [stmt]) else: self._evaluator.eval_statement(stmt) - analysis = self._evaluator.analysis + analysis = [a for a in self._evaluator.analysis if self.path == a.path] return sorted(analysis, key=lambda x: x.line) diff --git a/jedi/evaluate/analysis.py b/jedi/evaluate/analysis.py index 88e3cf47..42dd674e 100644 --- a/jedi/evaluate/analysis.py +++ b/jedi/evaluate/analysis.py @@ -13,7 +13,7 @@ CODES = { class Error(object): def __init__(self, name, module_path, start_pos): - self._module_path = module_path + self.path = module_path self._start_pos = start_pos self.name = name @@ -39,7 +39,7 @@ class Error(object): def __repr__(self): return '<%s %s: %s@%s,%s' % (self.__class__.__name__, - self.name, self._module_path, + self.name, self.path, self._start_pos[0], self._start_pos[1]) diff --git a/test/conftest.py b/test/conftest.py index 0b41f5ae..0d1da891 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -98,13 +98,13 @@ class StaticAnalysisCase(object): for line_nr, line in enumerate(self._source.splitlines(), 1): if line.startswith('#! '): rest = line[3:] - cases.append((line_nr, rest)) + cases.append((line_nr + 1, rest)) return cases def run(self, compare_cb): - analysis = jedi.Script(self._source)._analysis() + analysis = jedi.Script(self._source, path=self._path)._analysis() analysis = [(r.line, r.name) for r in analysis] - assert compare_cb(self, analysis, self.collect_comparison()) + compare_cb(self, analysis, self.collect_comparison()) def __repr__(self): return "<%s: %s>" % (self.__class__.__name__, os.path.basename(self._path)) diff --git a/test/static_analysis/imports.py b/test/static_analysis/imports.py new file mode 100644 index 00000000..f1f6f275 --- /dev/null +++ b/test/static_analysis/imports.py @@ -0,0 +1,5 @@ + +#! import-error +import not_existing + +import os