diff --git a/lib/pure/collections/deques.nim b/lib/pure/collections/deques.nim index d42679f06c..78953228bc 100644 --- a/lib/pure/collections/deques.nim +++ b/lib/pure/collections/deques.nim @@ -80,7 +80,7 @@ proc `[]`*[T](deq: Deque[T], i: Natural) : T {.inline.} = ## Access the i-th element of `deq` by order from first to last. ## deq[0] is the first, deq[^1] is the last. xBoundsCheck(deq, i) - return deq.data[(deq.first + i) and deq.mask] + return deq.data[(deq.head + i) and deq.mask] proc `[]`*[T](deq: var Deque[T], i: Natural): var T {.inline.} = ## Access the i-th element of `deq` and returns a mutable @@ -266,4 +266,4 @@ when isMainModule: foo(1,1) foo(2,1) foo(1,5) - foo(3,2) \ No newline at end of file + foo(3,2) diff --git a/tests/collections/tdeques.nim b/tests/collections/tdeques.nim new file mode 100644 index 0000000000..664ce43240 --- /dev/null +++ b/tests/collections/tdeques.nim @@ -0,0 +1,17 @@ +discard """ + output: '''true''' +""" + +import deques + + +proc index(self: Deque[int], idx: Natural): int = + self[idx] + +proc main = + var testDeque = initDeque[int]() + testDeque.addFirst(1) + assert testDeque.index(0) == 1 + +main() +echo "true"