From 28452442e325cfc4fca71f8a74f9cfa607c85ba3 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Mon, 1 Dec 2025 20:38:41 +0800 Subject: [PATCH] closes #22305; adds a test case --- tests/arc/tarc_orc.nim | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/arc/tarc_orc.nim b/tests/arc/tarc_orc.nim index 790511314c..08b56489af 100644 --- a/tests/arc/tarc_orc.nim +++ b/tests/arc/tarc_orc.nim @@ -186,3 +186,27 @@ block: # bug #24147 let oo = OO(val: "hello world") var ooCopy : OO `=copy`(ooCopy, oo) + +block: # bug #22305 + type + SharedPtr[T] = object + p: ptr T + + proc `=destroy`[T](self: SharedPtr[T]) = + discard + + type + SomethingObj[T] = object + Something[T] = SharedPtr[SomethingObj[T]] + + proc useSomething() = + # discard Something[int]() # When you uncomment this line, it will compile successfully. + discard Something[float]() + + proc fn() = + let thing = Something[int]() + proc closure() = + discard thing + closure() + + fn()