fixes #10651
This commit is contained in:
parent
70f0aab188
commit
b081eb4d6d
3 changed files with 40 additions and 14 deletions
|
|
@ -1149,7 +1149,7 @@ template isIndirect(x: PSym): bool =
|
||||||
let v = x
|
let v = x
|
||||||
({sfAddrTaken, sfGlobal} * v.flags != {} and
|
({sfAddrTaken, sfGlobal} * v.flags != {} and
|
||||||
#(mapType(v.typ) != etyObject) and
|
#(mapType(v.typ) != etyObject) and
|
||||||
{sfImportc, sfVolatile, sfExportc} * v.flags == {} and
|
{sfImportc, sfExportc} * v.flags == {} and
|
||||||
v.kind notin {skProc, skFunc, skConverter, skMethod, skIterator,
|
v.kind notin {skProc, skFunc, skConverter, skMethod, skIterator,
|
||||||
skConst, skTemp, skLet})
|
skConst, skTemp, skLet})
|
||||||
|
|
||||||
|
|
@ -1235,7 +1235,7 @@ proc genProcForSymIfNeeded(p: PProc, s: PSym) =
|
||||||
|
|
||||||
proc genCopyForParamIfNeeded(p: PProc, n: PNode) =
|
proc genCopyForParamIfNeeded(p: PProc, n: PNode) =
|
||||||
let s = n.sym
|
let s = n.sym
|
||||||
if p.prc == s.owner or needsNoCopy(p, n):
|
if p.prc == s.owner or needsNoCopy(p, n):
|
||||||
return
|
return
|
||||||
var owner = p.up
|
var owner = p.up
|
||||||
while true:
|
while true:
|
||||||
|
|
@ -1597,8 +1597,7 @@ proc createVar(p: PProc, typ: PType, indirect: bool): Rope =
|
||||||
internalError(p.config, "createVar: " & $t.kind)
|
internalError(p.config, "createVar: " & $t.kind)
|
||||||
result = nil
|
result = nil
|
||||||
|
|
||||||
template returnType: untyped =
|
template returnType: untyped = ~""
|
||||||
~""
|
|
||||||
|
|
||||||
proc genVarInit(p: PProc, v: PSym, n: PNode) =
|
proc genVarInit(p: PProc, v: PSym, n: PNode) =
|
||||||
var
|
var
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
discard """
|
|
||||||
output: "ABCDC"
|
|
||||||
"""
|
|
||||||
|
|
||||||
type
|
|
||||||
MyEnum = enum
|
|
||||||
A,B,C,D
|
|
||||||
# trick the optimizer with an seq:
|
|
||||||
var x = @[A,B,C,D]
|
|
||||||
echo x[0],x[1],x[2],x[3],MyEnum(2)
|
|
||||||
37
tests/js/tbasics.nim
Normal file
37
tests/js/tbasics.nim
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
discard """
|
||||||
|
output: '''ABCDC
|
||||||
|
1
|
||||||
|
14
|
||||||
|
ok'''
|
||||||
|
"""
|
||||||
|
|
||||||
|
type
|
||||||
|
MyEnum = enum
|
||||||
|
A,B,C,D
|
||||||
|
# trick the optimizer with an seq:
|
||||||
|
var x = @[A,B,C,D]
|
||||||
|
echo x[0],x[1],x[2],x[3],MyEnum(2)
|
||||||
|
|
||||||
|
# bug #10651
|
||||||
|
|
||||||
|
var xa: seq[int]
|
||||||
|
var ya = @[1,2]
|
||||||
|
xa &= ya
|
||||||
|
echo xa[0]
|
||||||
|
|
||||||
|
proc test =
|
||||||
|
var yup: seq[int]
|
||||||
|
try:
|
||||||
|
yup.add 14
|
||||||
|
echo yup.pop
|
||||||
|
finally:
|
||||||
|
discard
|
||||||
|
|
||||||
|
test()
|
||||||
|
|
||||||
|
when true:
|
||||||
|
var a: seq[int]
|
||||||
|
|
||||||
|
a.setLen(0)
|
||||||
|
|
||||||
|
echo "ok"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue