diff --git a/jedi/api.py b/jedi/api.py index 64231d02..f29fee87 100644 --- a/jedi/api.py +++ b/jedi/api.py @@ -434,6 +434,10 @@ class Script(object): for d in set(definitions): if isinstance(d, pr.Module): names.append(api_classes.Usage(d, d)) + elif isinstance(d, er.Instance): + # Instances can be ignored, because they are being created by + # ``__getattr__``. + pass else: names.append(api_classes.Usage(d.names[-1], d)) diff --git a/test/completion/usages.py b/test/completion/usages.py index 003fd41f..f81de013 100644 --- a/test/completion/usages.py +++ b/test/completion/usages.py @@ -132,6 +132,16 @@ class TestInstanceVar(): self._instance_var +class NestedClass(): + def __getattr__(self, name): + return self + +# Shouldn't find a definition, because there's no name defined (used ``getattr``). + +#< (0, 14), +NestedClass().instance + + # ----------------- # inheritance # -----------------