diff --git a/tests/arc/t23247.nim b/tests/arc/t23247.nim index 0fadc50cd9..9400d48835 100644 --- a/tests/arc/t23247.nim +++ b/tests/arc/t23247.nim @@ -49,4 +49,17 @@ proc setGauge( var nim_gc_mem_bytes = Gauge() let threadID = $getThreadId() setGauge(nim_gc_mem_bytes, @[threadID]) -setGauge(nim_gc_mem_bytes, @[threadID]) \ No newline at end of file +setGauge(nim_gc_mem_bytes, @[threadID]) + + +type + Callback*[C] = proc(value: sink C): uint + Person = object + +proc invoke[C](target: Callback[C], values: sink C): uint = + return target(values) + +proc operation(value: sink (Person, string, int)): uint = + return 123 + +doAssert invoke(operation, (Person(), "Jack", 25)) == 123 \ No newline at end of file