summary refs log tree commit diff stats
path: root/tests/vm/tableinstatic.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vm/tableinstatic.nim')
-rw-r--r--tests/vm/tableinstatic.nim38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/vm/tableinstatic.nim b/tests/vm/tableinstatic.nim
new file mode 100644
index 000000000..934c3a8dd
--- /dev/null
+++ b/tests/vm/tableinstatic.nim
@@ -0,0 +1,38 @@
+discard """
+  nimout: '''0
+0
+0
+'''
+"""
+
+import tables
+
+# bug #5327
+
+type
+  MyType* = object
+    counter: int
+
+proc foo(t: var MyType) =
+  echo t.counter
+
+proc bar(t: MyType) =
+  echo t.counter
+
+static:
+  var myValue: MyType
+  myValue.foo # works nicely
+
+  var refValue: ref MyType
+  refValue.new
+
+  refValue[].foo # fails to compile
+  refValue[].bar # works again nicely
+
+static:
+  var otherTable = newTable[string, string]()
+
+  otherTable["hallo"] = "123"
+  otherTable["welt"]  = "456"
+
+  doAssert otherTable == {"hallo": "123", "welt": "456"}.newTable