summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-01-01 13:55:22 -0800
committerGitHub <noreply@github.com>2021-01-01 22:55:22 +0100
commit0d0e43469f060818ec09d74de5b0bb7ded891898 (patch)
tree7e570f3554302ad90231ec36d12c39c9fc5771c8 /tests
parent505d04389ad5c83b50001e3108d89fcdec9c462f (diff)
downloadNim-0d0e43469f060818ec09d74de5b0bb7ded891898.tar.gz
fix #14340 (#16386)
Diffstat (limited to 'tests')
-rw-r--r--tests/vm/tvmmisc.nim17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/vm/tvmmisc.nim b/tests/vm/tvmmisc.nim
index 005f7e255..c1e563806 100644
--- a/tests/vm/tvmmisc.nim
+++ b/tests/vm/tvmmisc.nim
@@ -306,6 +306,23 @@ block: # bug #8007
   const d = @[Cost(kind: Fixed, cost: 999), Cost(kind: Dynamic, handler: foo)]
   doAssert $d == "@[(kind: Fixed, cost: 999), (kind: Dynamic, handler: ...)]"
 
+block: # bug #14340
+  block:
+    proc opl3EnvelopeCalcSin0() = discard
+    type EnvelopeSinfunc = proc()
+    # const EnvelopeCalcSin0 = opl3EnvelopeCalcSin0 # ok
+    const EnvelopeCalcSin0: EnvelopeSinfunc = opl3EnvelopeCalcSin0 # was bug
+    const envelopeSin = [EnvelopeCalcSin0]
+    var a = 0
+    envelopeSin[a]()
+
+  block:
+    type Mutator = proc() {.noSideEffect, gcsafe, locks: 0.}
+    proc mutator0() = discard
+    const mTable = [Mutator(mutator0)]
+    var i=0
+    mTable[i]()
+
 block: # VM wrong register free causes errors in unrelated code
   block: # bug #15597
     #[