summary refs log tree commit diff stats
path: root/tests/ccgbugs/tgeneric_smallobj_asgn_opt.nim
blob: 3788b9985a987a285640bde9184cfec81be08ee7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
discard """
  output: "done generic smallobj asgn opt"
"""

# bug #5402

import lists

type
  Container[T] = ref object
    obj: T

  ListOfContainers[T] = ref object
    list: DoublyLinkedList[Container[T]]

proc contains[T](this: ListOfContainers[T], obj: T): bool =
  for item in this.list.items():
    if item.obj == obj: return true
  return false

proc newListOfContainers[T](): ListOfContainers[T] =
  new(result)
  result.list = initDoublyLinkedList[Container[T]]()

let q = newListOfContainers[int64]()
if not q.contains(123):
  echo "done generic smallobj asgn opt"