diff options
author | LemonBoy <LemonBoy@users.noreply.github.com> | 2019-01-22 07:35:52 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-01-22 07:35:52 +0100 |
commit | 3ea099bc7f75d35ee127932208d9d012b57f11f8 (patch) | |
tree | f9d87213df74cf6411f360c925fce44bc3eeae8e /tests/errmsgs | |
parent | 7a3f382517cfc0f2b676dc6704b423e7b167b565 (diff) | |
download | Nim-3ea099bc7f75d35ee127932208d9d012b57f11f8.tar.gz |
Finalizer proc must be global (#10388)
Fixes #10376
Diffstat (limited to 'tests/errmsgs')
-rw-r--r-- | tests/errmsgs/t10376.nim | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/errmsgs/t10376.nim b/tests/errmsgs/t10376.nim new file mode 100644 index 000000000..a33d5e40f --- /dev/null +++ b/tests/errmsgs/t10376.nim @@ -0,0 +1,31 @@ +discard """ + errormsg: "finalizer must be a direct reference to a procedure" + line: 29 +""" + +type + A = ref object + +proc my_callback(a: A) {. nimcall .} = + discard + +proc foo(callback: proc(a: A) {. nimcall .}) = + var x1: A + new(x1, proc (x: A) {.nimcall.} = discard) + var x2: A + new(x2, func (x: A) {.nimcall.} = discard) + + var x3: A + proc foo1(a: A) {.nimcall.} = discard + new(x3, foo1) + var x4: A + func foo2(a: A) {.nimcall.} = discard + new(x4, foo2) + + var x5: A + new(x5, my_callback) + + var x6: A + new(x6, callback) + +foo(my_callback) |