Files
Nim/tests/init/tlet_uninit3.nim
ringabout b2c7019006 definite assignment analysis for let (#21024)
* draft for let daa

* patch

* fixes bugs

* errors for global let variable reassignments

* checkpoint

* out param accepts let

* add more tests

* add documentation

* merge tests
2022-12-06 10:19:12 +01:00

25 lines
447 B
Nim

discard """
cmd: "nim check $file"
action: "reject"
nimout: '''
tlet_uninit3.nim(13, 5) Error: 'let' symbol requires an initialization
tlet_uninit3.nim(19, 5) Error: 'x' cannot be assigned to
tlet_uninit3.nim(23, 11) Error: 'let' symbol requires an initialization
'''
"""
{.experimental: "strictDefs".}
let global {.used.}: int
proc foo() =
block:
let x: int
x = 13
x = 14
block:
let x: int
doAssert x == 0
foo()