diff options
author | Araq <rumpf_a@web.de> | 2018-10-03 00:00:19 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2018-10-03 00:00:19 +0200 |
commit | c92fdb24c8bf78846d26d5488c9e33656ff93e34 (patch) | |
tree | 32d777aa7c6cfbfc21e8de1a2e46df9ec382d6a5 /tests/closure | |
parent | bf8595580227ece7cd8a28365d2147229acff4b9 (diff) | |
download | Nim-c92fdb24c8bf78846d26d5488c9e33656ff93e34.tar.gz |
fixes #5015
Diffstat (limited to 'tests/closure')
-rw-r--r-- | tests/closure/tclosure.nim | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/closure/tclosure.nim b/tests/closure/tclosure.nim index 09d48436e..f4364c24a 100644 --- a/tests/closure/tclosure.nim +++ b/tests/closure/tclosure.nim @@ -1,6 +1,6 @@ discard """ file: "tclosure.nim" - output: "1 3 6 11 20" + output: '''1 3 6 11 20 foo''' """ # Test the closure implementation @@ -45,3 +45,20 @@ proc getInterf(): ITest = return (setter: proc (x: int) = shared = x, getter: proc (): int = return shared) + +# bug #5015 + +type Mutator* = proc(matched: string): string {.noSideEffect, gcsafe, locks: 0.} + +proc putMutated*( + MutatorCount: static[int], + mTable: static[array[MutatorCount, Mutator]], input: string) = + for i in 0..<MutatorCount: echo mTable[i](input) + +proc mutator0(matched: string): string = + "foo" + +const + mTable = [Mutator(mutator0)] + +putMutated(1, mTable, "foo") |