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
|
|
@ -482,7 +482,7 @@ nil`` annotation to exclude ``nil`` as a valid value:
|
|||
|
||||
.. code-block:: nim
|
||||
{.experimental: "notnil"}
|
||||
|
||||
|
||||
type
|
||||
PObject = ref TObj not nil
|
||||
TProc = (proc (x, y: int)) not nil
|
||||
|
|
@ -1828,8 +1828,8 @@ Aliasing restrictions in parameter passing
|
|||
implementation and need to be fleshed out further.
|
||||
|
||||
"Aliasing" here means that the underlying storage locations overlap in memory
|
||||
at runtime. An "output parameter" is a parameter of type ``var T``, an input
|
||||
parameter is any parameter that is not of type ``var``.
|
||||
at runtime. An "output parameter" is a parameter of type ``var T``,
|
||||
an input parameter is any parameter that is not of type ``var``.
|
||||
|
||||
1. Two output parameters should never be aliased.
|
||||
2. An input and an output parameter should not be aliased.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue