From 196afaacbf21cf25f9fddb99bc56529920013130 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 30 Jul 2014 11:34:27 +0200 Subject: [PATCH] always operate on class in super and not on an instance. that's the proper way. --- jedi/evaluate/representation.py | 2 +- jedi/evaluate/stdlib.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 3056e55d..e491d4dc 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -176,7 +176,7 @@ class Instance(use_metaclass(CachedMetaClass, Executable)): def __getattr__(self, name): if name not in ['start_pos', 'end_pos', 'name', 'get_imports', - 'doc', 'raw_doc', 'asserts', 'py_bases']: + 'doc', 'raw_doc', 'asserts']: raise AttributeError("Instance %s: Don't touch this (%s)!" % (self, name)) return getattr(self.base, name) diff --git a/jedi/evaluate/stdlib.py b/jedi/evaluate/stdlib.py index 99a0939d..ded74ab5 100644 --- a/jedi/evaluate/stdlib.py +++ b/jedi/evaluate/stdlib.py @@ -100,6 +100,8 @@ def builtins_super(evaluator, obj, params): if isinstance(cls, wanted): if isinstance(cls, pr.Class): cls = er.Class(evaluator, cls) + elif isinstance(cls, er.Instance): + cls = cls.base su = cls.py_bases() if su: return evaluator.execute(su[0])