mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
* fixes #21043; fixes a named exception in the infixAs expression which generate an implicit uninitialized let statement * Update compiler/sempass2.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
56 lines
808 B
Nim
56 lines
808 B
Nim
{.experimental: "strictDefs".}
|
|
|
|
proc bar(x: out string) =
|
|
x = "abc"
|
|
|
|
template moe = # bug #21043
|
|
try:
|
|
discard
|
|
except ValueError as e:
|
|
echo(e.msg)
|
|
|
|
template moe0 {.dirty.} = # bug #21043
|
|
try:
|
|
discard
|
|
except ValueError as e:
|
|
echo(e.msg)
|
|
|
|
proc foo() =
|
|
block:
|
|
let x: string
|
|
if true:
|
|
x = "abc"
|
|
else:
|
|
x = "def"
|
|
doAssert x == "abc"
|
|
block:
|
|
let y: string
|
|
bar(y)
|
|
doAssert y == "abc"
|
|
block:
|
|
let x: string
|
|
if true:
|
|
x = "abc"
|
|
discard "abc"
|
|
else:
|
|
x = "def"
|
|
discard "def"
|
|
doAssert x == "abc"
|
|
block: #
|
|
let x {.used.} : int
|
|
block: #
|
|
let x: float
|
|
x = 1.234
|
|
doAssert x == 1.234
|
|
|
|
block:
|
|
try:
|
|
discard
|
|
except ValueError as e:
|
|
echo(e.msg)
|
|
moe()
|
|
moe0()
|
|
|
|
static: foo()
|
|
foo()
|