summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cython/Tests/TestJediTyper.py4
-rw-r--r--Tools/jedi-typer.py6
2 files changed, 6 insertions, 4 deletions
diff --git a/Cython/Tests/TestJediTyper.py b/Cython/Tests/TestJediTyper.py
index 691387df0..a2bd245d0 100644
--- a/Cython/Tests/TestJediTyper.py
+++ b/Cython/Tests/TestJediTyper.py
@@ -84,7 +84,7 @@ class TestJediTyper(TransformTest):
self.assertFalse(types)
self.assertEqual({'a': set(['int']), 'i': set(['int'])}, variables)
- def _test_conflicting_types_in_function(self):
+ def test_conflicting_types_in_function(self):
code = '''\
def func(a, b):
print(a)
@@ -99,7 +99,7 @@ class TestJediTyper(TransformTest):
self.assertIn(('func', (1, 0)), types)
variables = types.pop(('func', (1, 0)))
self.assertFalse(types)
- self.assertEqual({'a': set(['int', 'str']), 'i': set(['int'])}, variables)
+ self.assertEqual({'a': set(['float', 'int', 'str']), 'b': set(['int'])}, variables)
def _test_typing_function_char_loop(self):
code = '''\
diff --git a/Tools/jedi-typer.py b/Tools/jedi-typer.py
index 3ad0d5df1..a63dfb2a2 100644
--- a/Tools/jedi-typer.py
+++ b/Tools/jedi-typer.py
@@ -44,9 +44,11 @@ def analyse(source_path=None, code=None):
try:
names = scoped_names[key]
except KeyError:
- names = scoped_names[key] = defaultdict(set)
+ names = scoped_names[key] = defaultdict(set)
+
+ position = statement.start_pos if statement.name in names else None
- for name_type in evaluator.find_types(scope, statement.name, search_global=True):
+ for name_type in evaluator.find_types(scope, statement.name, position=position ,search_global=True):
if isinstance(name_type, Instance):
if isinstance(name_type.base, Class):
type_name = 'object'