summary refs log tree commit diff stats
path: root/tests/accept/run/tvariantstack.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/accept/run/tvariantstack.nim')
-rw-r--r--tests/accept/run/tvariantstack.nim46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/accept/run/tvariantstack.nim b/tests/accept/run/tvariantstack.nim
new file mode 100644
index 000000000..3df8197f2
--- /dev/null
+++ b/tests/accept/run/tvariantstack.nim
@@ -0,0 +1,46 @@
+#BUG
+type
+  TAnyKind = enum
+    nkInt,
+    nkFloat,
+    nkString
+  PAny = ref TAny
+  TAny = object
+    case kind: TAnyKind
+    of nkInt: intVal: int
+    of nkFloat: floatVal: float
+    of nkString: strVal: string
+
+  TStack* = object
+    list*: seq[TAny]
+
+proc newStack(): TStack =
+  result.list = @[]
+
+proc push(Stack: var TStack, item: TAny) =
+  var nSeq: seq[TAny] = @[item]
+  for i in items(Stack.list):
+    nSeq.add(i)
+  Stack.list = nSeq
+
+proc pop(Stack: var TStack): TAny =
+  result = Stack.list[0]
+  Stack.list.delete(0)
+
+var stack = newStack()
+
+var s: TAny
+s.kind = nkString
+s.strVal = "test"
+
+stack.push(s)
+
+var nr: TAny
+nr.kind = nkint
+nr.intVal = 78
+
+stack.push(nr)
+
+var t = stack.pop()
+
+