summary refs log tree commit diff stats
path: root/tests/effects
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2020-06-23 10:53:57 +0200
committerGitHub <noreply@github.com>2020-06-23 10:53:57 +0200
commitda29222f86f7689227ffe12605842d18c9bf0fc1 (patch)
tree312152d96e2313a81170c772ff7b51475299f344 /tests/effects
parenta9eee6db65e72e0e11cbf5faf0794b1b6ac8bd0c (diff)
downloadNim-da29222f86f7689227ffe12605842d18c9bf0fc1.tar.gz
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
Diffstat (limited to 'tests/effects')
-rw-r--r--tests/effects/toutparam.nim28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/effects/toutparam.nim b/tests/effects/toutparam.nim
new file mode 100644
index 000000000..00572aa6b
--- /dev/null
+++ b/tests/effects/toutparam.nim
@@ -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()