diff --git a/jedi/evaluate/compiled/fake/builtins.pym b/jedi/evaluate/compiled/fake/builtins.pym index e0046d9c..1283de00 100644 --- a/jedi/evaluate/compiled/fake/builtins.pym +++ b/jedi/evaluate/compiled/fake/builtins.pym @@ -156,7 +156,7 @@ class set(): yield i def pop(self): - return self.__iterable.pop() + return list(self.__iterable)[-1] def copy(self): return self diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 92d24bb4..21cc8e7e 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -550,6 +550,11 @@ class ArrayInstance(IterableWrapper): Used for the usage of set() and list(). This is definitely a hack, but a good one :-) It makes it possible to use set/list conversions. + + In contrast to Array, ListComprehension and all other iterable types, this + is something that is only used inside `evaluate/compiled/fake/builtins.py` + and therefore doesn't need `names_dicts`, `py__bool__` and so on, because + we don't use these operations in `builtins.py`. """ def __init__(self, evaluator, instance): self._evaluator = evaluator