diff --git a/jedi/inference/context.py b/jedi/inference/context.py index cbbce0c7..0d029bd9 100644 --- a/jedi/inference/context.py +++ b/jedi/inference/context.py @@ -255,8 +255,7 @@ class TreeContextMixin: if scope_node.type in ('funcdef', 'lambdef', 'classdef'): return self.create_value(scope_node).as_context() elif scope_node.type in ('comp_for', 'sync_comp_for'): - parent_scope = parser_utils.get_parent_scope(scope_node) - parent_context = from_scope_node(parent_scope) + parent_context = from_scope_node(parent_scope(scope_node.parent)) if node.start_pos >= scope_node.children[-1].start_pos: return parent_context return CompForContext(parent_context, scope_node) diff --git a/test/completion/usages.py b/test/completion/usages.py index 9ed9ae61..d708297e 100644 --- a/test/completion/usages.py +++ b/test/completion/usages.py @@ -310,6 +310,13 @@ z = 3 #< 10 (0,1), (0,10) {z:1 for z in something} +#< 8 (0,6), (0, 40) +[[x + nested_loopv2 for x in bar()] for nested_loopv2 in baz()] + +#< 25 (0,20), (0, 65) +(("*" if abs(foo(x, nested_loopv1)) else " " for x in bar()) for nested_loopv1 in baz()) + + def whatever_func(): zzz = 3 if UNDEFINED: diff --git a/test/run.py b/test/run.py index 76b248eb..a55cd4bc 100755 --- a/test/run.py +++ b/test/run.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ |jedi| is mostly being tested by what I would call "integration tests". These tests are testing type inference with the public API. This makes a