init checks and 'out' parameters (#14521)
* I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
This commit is contained in:
parent
a9eee6db65
commit
da29222f86
53 changed files with 355 additions and 257 deletions
28
tests/effects/toutparam.nim
Normal file
28
tests/effects/toutparam.nim
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
discard """
|
||||
cmd: '''nim c --warningAsError[Uninit]:on --skipCfg --skipParentCfg $file'''
|
||||
errormsg: "use explicit initialization of 'x' for clarity [Uninit]"
|
||||
line: 24
|
||||
disabled: "true"
|
||||
"""
|
||||
|
||||
proc gah[T](x: out T) =
|
||||
x = 3
|
||||
|
||||
proc main =
|
||||
var a: array[2, int]
|
||||
var x: int
|
||||
gah(x)
|
||||
a[0] = 3
|
||||
a[x] = 3
|
||||
echo x
|
||||
|
||||
main()
|
||||
|
||||
proc mainB =
|
||||
var a: array[2, int]
|
||||
var x: int
|
||||
a[0] = 3
|
||||
a[x] = 3
|
||||
echo x
|
||||
|
||||
mainB()
|
||||
Loading…
Add table
Add a link
Reference in a new issue