diff --git a/evaluate.py b/evaluate.py index 8702d218..c8b7f70c 100644 --- a/evaluate.py +++ b/evaluate.py @@ -163,6 +163,8 @@ class Instance(Executable): # This loop adds the names of the self object, copies them and removes # the self. for sub in self.base.subscopes: + if isinstance(sub, parsing.Class): + continue # Get the self name, if there's one. self_name = self.get_func_self_name(sub) if self_name: diff --git a/test/completion/classes.py b/test/completion/classes.py index 146fad1d..e2a391b6 100644 --- a/test/completion/classes.py +++ b/test/completion/classes.py @@ -209,3 +209,25 @@ def a(): A().b() #? str() A().a() + +# ----------------- +# nested classes +# ----------------- +class A(): + class B(): + pass + def b(self): + return 1.0 + +#? float() +A().b() + +class A(): + def b(self): + class B(): + def b(self): + return [] + return B().b() + +#? list() +A().b()