Skip to content

Commit

Permalink
fixes nim-lang#9674 [backport] (nim-lang#13143)
Browse files Browse the repository at this point in the history
(cherry picked from commit 675ca99)
  • Loading branch information
Araq authored and narimiran committed Jan 16, 2020
1 parent f1ec998 commit 2f557f7
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
13 changes: 12 additions & 1 deletion compiler/jsgen.nim
Original file line number Diff line number Diff line change
Expand Up @@ -1894,6 +1894,15 @@ proc genReset(p: PProc, n: PNode) =
lineF(p, "$1 = genericReset($3, $2);$n", [a,
genTypeInfo(p, n.sons[1].typ), tmp])

proc genMove(p: PProc; n: PNode; r: var TCompRes) =
var a: TCompRes
r.kind = resVal
r.res = p.getTemp()
gen(p, n[1], a)
lineF(p, "$1 = $2;$n", [r.rdLoc, a.rdLoc])
genReset(p, n)
#lineF(p, "$1 = $2;$n", [dest.rdLoc, src.rdLoc])

proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
var
a: TCompRes
Expand Down Expand Up @@ -2018,7 +2027,7 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
of mNewSeqOfCap: unaryExpr(p, n, r, "", "[]")
of mOf: genOf(p, n, r)
of mDefault: genDefault(p, n, r)
of mReset: genReset(p, n)
of mReset, mWasMoved: genReset(p, n)
of mEcho: genEcho(p, n, r)
of mNLen..mNError, mSlurp, mStaticExec:
localError(p.config, n.info, errXMustBeCompileTime % n.sons[0].sym.name.s)
Expand All @@ -2041,6 +2050,8 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) =
gen(p, n.sons[3], z)
r.res = "($1.slice($2, $3+1))" % [x.rdLoc, y.rdLoc, z.rdLoc]
r.kind = resExpr
of mMove:
genMove(p, n, r)
else:
genCall(p, n, r)
#else internalError(p.config, e.info, 'genMagic: ' + magicToStr[op]);
Expand Down
10 changes: 9 additions & 1 deletion tests/js/tcopying.nim
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ discard """
true false
100 300 100
1
1
'''
"""

Expand Down Expand Up @@ -69,4 +70,11 @@ block:

var nums = [1, 2]
foo(nums)
echo nums[0]
echo nums[0]

proc bug9674 =
var b = @[1,2,3]
var a = move(b)
echo a[0]

bug9674()

0 comments on commit 2f557f7

Please sign in to comment.