From c7f225439d0b1301b4a1331a6233cf54a08deeb1 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 9 Sep 2017 20:20:05 +0200 Subject: [PATCH] Comprehenions can also define self variables. Also related to #932. --- jedi/evaluate/instance.py | 3 +++ test/completion/classes.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/jedi/evaluate/instance.py b/jedi/evaluate/instance.py index c0dae4d9..6ce26f6e 100644 --- a/jedi/evaluate/instance.py +++ b/jedi/evaluate/instance.py @@ -189,6 +189,9 @@ class AbstractInstanceContext(Context): elif scope.type == 'classdef': class_context = er.ClassContext(self.evaluator, scope, parent_context) return class_context + elif scope.type == 'comp_for': + # Comprehensions currently don't have a special scope in Jedi. + return self.create_instance_context(class_context, scope) else: raise NotImplementedError return class_context diff --git a/test/completion/classes.py b/test/completion/classes.py index ab7ea3ac..292cfc36 100644 --- a/test/completion/classes.py +++ b/test/completion/classes.py @@ -526,3 +526,10 @@ class Foo(object): Foo().create_class().a #? float() Foo().b + +class Foo(object): + def comprehension_definition(self): + return [1 for self.b in [1]] + +#? int() +Foo().b