diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 3d77ae5243..9433a73279 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -614,7 +614,8 @@ proc analyseIfAddressTakenInCall(c: PContext, n: PNode) = const FakeVarParams = {mNew, mNewFinalize, mInc, ast.mDec, mIncl, mExcl, mSetLengthStr, mSetLengthSeq, mAppendStrCh, mAppendStrStr, mSwap, - mAppendSeqElem, mNewSeq, mReset, mShallowCopy, mDeepCopy} + mAppendSeqElem, mNewSeq, mReset, mShallowCopy, mDeepCopy, mMove, + mWasMoved} # get the real type of the callee # it may be a proc var with a generic alias type, so we skip over them diff --git a/tests/destructor/texplicit_move.nim b/tests/destructor/texplicit_move.nim index 6735ac75db..230f0b1333 100644 --- a/tests/destructor/texplicit_move.nim +++ b/tests/destructor/texplicit_move.nim @@ -2,7 +2,10 @@ discard """ output: '''3 0 -destroyed!''' +0 +10 +destroyed! +''' """ type @@ -17,3 +20,10 @@ var x.f = 3 echo move(x.f) echo x.f + +# bug #9743 +let a = create int +a[] = 10 +var b = move a[] +echo a[] +echo b