summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-07-09 12:03:50 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-07-09 12:03:50 +0200
commit674db58a249fd6b7d0a35258158e713798bf7d98 (patch)
tree92f0efa025422f932db4848e996e5b123f8085d6 /tests
parent2b72f775e27c5426501a789fa7230a71cd2aa974 (diff)
downloadNim-674db58a249fd6b7d0a35258158e713798bf7d98.tar.gz
fixes #5608
Diffstat (limited to 'tests')
-rw-r--r--tests/js/tbyvar.nim43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/js/tbyvar.nim b/tests/js/tbyvar.nim
index f974049b9..e3690df98 100644
--- a/tests/js/tbyvar.nim
+++ b/tests/js/tbyvar.nim
@@ -5,6 +5,11 @@ bar 12
 foo 12
 bar 12
 2
+12.5
+(nums: @[5, 5, 10, 5, 5, 5, 5, 5, 5, 5])
+(nums: @[5, 5, 50, 5, 5, 5, 5, 5, 5, 5])
+(nums: @[5, 5, 45, 5, 5, 5, 5, 5, 5, 5])
+(nums: @[5, 5, 9, 5, 5, 5, 5, 5, 5, 5])
 '''
 """
 
@@ -59,3 +64,41 @@ block: # Test var arg inside case expression. #5244
   var a = "ok"
   foo(a)
   doAssert(a == "ok")
+
+
+proc mainowar =
+  var x = 9.0
+  x += 3.5
+  echo x
+
+mainowar()
+
+
+# bug #5608
+
+type Foo = object
+    nums : seq[float]
+
+proc newFoo(len : int, default = 0.0) : Foo =
+    result = Foo()
+    result.nums = newSeq[float](len)
+    for i in 0..(len - 1):
+        result.nums[i] = default
+
+proc `[]=`(f : var Foo, i : int, v : float) =
+    f.nums[i] = v
+
+proc `[]`(f : Foo, i : int) : float = f.nums[i]
+
+proc `[]`(f : var Foo, i : int) : var float = f.nums[i]
+
+var f = newFoo(10,5)
+
+f[2] += 5
+echo f
+f[2] *= 5
+echo f
+f[2] -= 5
+echo f
+f[2] /= 5
+echo f