From 01099ce5a9ea8947080c8a19bcf788f5ddde5526 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 4 Jan 2017 18:12:33 +0100 Subject: [PATCH] Create a name for the generators. --- jedi/evaluate/iterable.py | 4 ++++ test/test_api/test_api.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index a2ad747a..e0a97d17 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -158,6 +158,10 @@ class GeneratorMixin(object): gen_obj = compiled.get_special_object(self.evaluator, 'GENERATOR_OBJECT') return gen_obj.py__class__() + @property + def name(self): + return compiled.CompiledContextName(self, 'generator') + class Generator(GeneratorMixin, context.Context): """Handling of `yield` functions.""" diff --git a/test/test_api/test_api.py b/test/test_api/test_api.py index 6b66dcc8..34c53bd6 100644 --- a/test/test_api/test_api.py +++ b/test/test_api/test_api.py @@ -119,6 +119,11 @@ def test_goto_definitions_on_non_name(): assert api.Script('import x', column=0).goto_definitions() == [] +def test_goto_definitions_on_generator(): + def_, = api.Script('def x(): yield 1\ny=x()\ny').goto_definitions() + assert def_.name == 'generator' + + def test_goto_definition_not_multiple(): """ There should be only one Definition result if it leads back to the same