var a = [1,2,3]
assert a.pop == 3
assert a.pop == 2
assert a == [1]
REQUIRE not is_empty
redef fun pop
do
assert not_empty
var node = tail_node
while node.length == 0 do
# Delete empty node
var nullable_node = node.prev
assert is_not_empty: nullable_node != null
node = nullable_node
node.next = null
self.tail_node = node
end
var item = node.items[node.tail_index-1]
node.tail_index -= 1
length -= 1
return item
end
lib/more_collections/more_collections.nit:482,2--500,4