This commit is contained in:
cooldome 2018-04-06 09:53:21 +01:00 • committed by Andreas Rumpf
commit c34cb101b8
2 changed files with 15 additions and 7 deletions

View file

@ -251,7 +251,7 @@ proc gen(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags = {})
proc gen(c: PCtx; n: PNode; dest: TRegister; flags: TGenFlags = {}) = proc gen(c: PCtx; n: PNode; dest: TRegister; flags: TGenFlags = {}) =
var d: TDest = dest var d: TDest = dest
gen(c, n, d, flags) gen(c, n, d, flags)
internalAssert d == dest #internalAssert d == dest # issue #7407
proc gen(c: PCtx; n: PNode; flags: TGenFlags = {}) = proc gen(c: PCtx; n: PNode; flags: TGenFlags = {}) =
var tmp: TDest = -1 var tmp: TDest = -1
@ -1829,7 +1829,6 @@ proc gen(c: PCtx; n: PNode; dest: var TDest; flags: TGenFlags = {}) =
unused(n, dest) unused(n, dest)
genReturn(c, n) genReturn(c, n)
of nkRaiseStmt: of nkRaiseStmt:
unused(n, dest)
genRaise(c, n) genRaise(c, n)
of nkBreakStmt: of nkBreakStmt:
unused(n, dest) unused(n, dest)

View file

@ -45,15 +45,24 @@ let a = case str1:
echo "no good" echo "no good"
quit("quiting") quit("quiting")
let b = case str2: proc toBool(s: string): bool =
case s:
of nil, "": raise newException(ValueError, "Invalid boolean") of nil, "": raise newException(ValueError, "Invalid boolean")
elif str2[0] == 'Y': true elif s[0] == 'Y': true
elif str2[0] == 'N': false elif s[0] == 'N': false
else: "error".quit(2) else: "error".quit(2)
let b = "NN".toBool()
doAssert(a == true) doAssert(a == true)
doAssert(b == false) doAssert(b == false)
static:
#bug #7407
let bstatic = "N".toBool()
doAssert(bstatic == false)
var bb: bool var bb: bool
doassert(not compiles( doassert(not compiles(
bb = case str2: bb = case str2: