diff --git a/jedi/inference/filters.py b/jedi/inference/filters.py index e7dc3849..00e594f7 100644 --- a/jedi/inference/filters.py +++ b/jedi/inference/filters.py @@ -255,7 +255,7 @@ class _BuiltinMappedMethod(ValueWrapper): def py__call__(self, arguments): # TODO add TypeError if params are given/or not correct. - return self._method(self._value) + return self._method(self._value, arguments) class SpecialMethodFilter(DictFilter): @@ -330,7 +330,7 @@ class _AttributeOverwriteMixin(object): def get_filters(self, *args, **kwargs): yield SpecialMethodFilter(self, self.overwritten_methods, self._wrapped_value) - for filter in self._wrapped_value.get_filters(): + for filter in self._wrapped_value.get_filters(*args, **kwargs): yield filter diff --git a/jedi/inference/value/iterable.py b/jedi/inference/value/iterable.py index d23ca13e..43692c57 100644 --- a/jedi/inference/value/iterable.py +++ b/jedi/inference/value/iterable.py @@ -58,13 +58,13 @@ class GeneratorBase(LazyAttributeOverwrite, IterableMixin): return True @publish_method('__iter__') - def py__iter__(self, contextualized_node=None): + def _iter(self, arguments): return ValueSet([self]) @publish_method('send') @publish_method('next', python_version_match=2) @publish_method('__next__', python_version_match=3) - def py__next__(self): + def py__next__(self, arguments): return ValueSet.from_sets(lazy_value.infer() for lazy_value in self.py__iter__()) def py__stop_iteration_returns(self): @@ -290,12 +290,12 @@ class DictComprehension(ComprehensionMixin, Sequence, _DictKeyMixin): return ValueSet.from_sets(values for keys, values in self._iterate()) @publish_method('values') - def _imitate_values(self): + def _imitate_values(self, arguments): lazy_value = LazyKnownValues(self._dict_values()) return ValueSet([FakeList(self.inference_state, [lazy_value])]) @publish_method('items') - def _imitate_items(self): + def _imitate_items(self, arguments): lazy_values = [ LazyKnownValue( FakeTuple( @@ -457,12 +457,12 @@ class DictLiteralValue(_DictMixin, SequenceLiteralValue, _DictKeyMixin): yield LazyKnownValues(types) @publish_method('values') - def _imitate_values(self): + def _imitate_values(self, arguments): lazy_value = LazyKnownValues(self._dict_values()) return ValueSet([FakeList(self.inference_state, [lazy_value])]) @publish_method('items') - def _imitate_items(self): + def _imitate_items(self, arguments): lazy_values = [ LazyKnownValue(FakeTuple( self.inference_state, @@ -552,7 +552,7 @@ class FakeDict(_DictMixin, Sequence, _DictKeyMixin): return lazy_value.infer() @publish_method('values') - def _values(self): + def _values(self, arguments): return ValueSet([FakeTuple( self.inference_state, [LazyKnownValues(self._dict_values())] diff --git a/jedi/plugins/stdlib.py b/jedi/plugins/stdlib.py index 475cd6a8..8bb35ad1 100644 --- a/jedi/plugins/stdlib.py +++ b/jedi/plugins/stdlib.py @@ -260,13 +260,12 @@ class ReversedObject(AttributeOverwrite): super(ReversedObject, self).__init__(reversed_obj) self._iter_list = iter_list - @publish_method('__iter__') - def py__iter__(self, contextualized_node=None): + def py__iter__(self, contextualized_node): return self._iter_list @publish_method('next', python_version_match=2) @publish_method('__next__', python_version_match=3) - def py__next__(self): + def py__next__(self, arguments): return ValueSet.from_sets( lazy_value.infer() for lazy_value in self._iter_list ) @@ -401,7 +400,7 @@ class PropertyObject(AttributeOverwrite, ValueWrapper): @publish_method('deleter') @publish_method('getter') @publish_method('setter') - def _return_self(self): + def _return_self(self, arguments): return ValueSet({self})