From ed20f189f4100879b9a0030446e44085fb1c9c18 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Mon, 11 May 2026 19:53:54 +0800 Subject: [PATCH] refactor: remove internal error check in genMove --- compiler/ccgexprs.nim | 3 --- tests/destructor/twasmoved.nim | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index 0708607c96..2cf187e687 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -2842,9 +2842,6 @@ proc genMove(p: BProc; n: PNode; d: var TLoc) = var op = getAttachedOp(p.module.g.graph, n.typ, attachedWasMoved) if op == nil: resetLoc(p, a) - elif sfOverridden in op.flags: - internalError(p.config, n.info, - "overridden =wasMoved should be emitted by instantiated move") else: var b = initLocExpr(p, newSymNode(op)) case skipTypes(a.t, abstractVar+{tyStatic}).kind diff --git a/tests/destructor/twasmoved.nim b/tests/destructor/twasmoved.nim index be8df993f0..f9a0ad363a 100644 --- a/tests/destructor/twasmoved.nim +++ b/tests/destructor/twasmoved.nim @@ -43,3 +43,20 @@ block: main() + +import std/threadpool + +block: + type Foo = object + data: string + + proc `=wasMoved`(x: var Foo) = + discard + + proc work(x: Foo) = + discard + + var x = Foo(data: "hello") + spawn work(x) + sync() +