diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index df8a5eaf..b80a7391 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -68,8 +68,8 @@ class CompiledObject(Base): return tuple(create(self._evaluator, cls, self.parent) for cls in self.obj.__mro__) @CheckAttribute - def py__bases__(self, evaluator): - return tuple(create(evaluator, cls) for cls in self.obj.__bases__) + def py__bases__(self): + return tuple(create(self._evaluator, cls) for cls in self.obj.__bases__) def py__bool__(self): return bool(self.obj) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index a80c22b9..cd277b47 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -20,7 +20,7 @@ and others. Here's a list: py__call__(evaluator, params: Array) On callable objects, returns types. py__bool__() Returns True/False/None; None means that there's no certainty. -py__bases__(evaluator) Returns a list of base classes. +py__bases__() Returns a list of base classes. py__mro__() Returns a list of classes (the mro). py__iter__() Returns a generator of a set of types. py__getitem__(index: int/str) Returns a a set of types of the index. @@ -422,7 +422,7 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)): mro = [self] # TODO Do a proper mro resolution. Currently we are just listing # classes. However, it's a complicated algorithm. - for cls in self.py__bases__(self._evaluator): + for cls in self.py__bases__(): # TODO detect for TypeError: duplicate base class str, # e.g. `class X(str, str): pass` try: @@ -447,13 +447,13 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)): return tuple(mro) @memoize_default(default=()) - def py__bases__(self, evaluator): + def py__bases__(self): arglist = self.base.get_super_arglist() if arglist: args = param.Arguments(self._evaluator, arglist) return list(chain.from_iterable(args.eval_args())) else: - return [compiled.create(evaluator, object)] + return [compiled.create(self._evaluator, object)] def py__call__(self, evaluator, params): return set([Instance(evaluator, self, params)]) diff --git a/jedi/evaluate/stdlib.py b/jedi/evaluate/stdlib.py index c29a8e99..5774d0f0 100644 --- a/jedi/evaluate/stdlib.py +++ b/jedi/evaluate/stdlib.py @@ -148,7 +148,7 @@ def builtins_super(evaluator, types, objects, scope): cls = er.Class(evaluator, cls) elif isinstance(cls, er.Instance): cls = cls.base - su = cls.py__bases__(evaluator) + su = cls.py__bases__() if su: return evaluator.execute(su[0]) return set()