fixes #18073; fixes #14730; document notnil is only applied to local … (#23084)

…symbols

fixes #18073
fixes #14730
This commit is contained in:
ringabout
2023-12-19 17:24:22 +08:00
committed by GitHub
parent 0f54554213
commit 434e062e82

View File

@@ -560,7 +560,8 @@ Not nil annotation
`{.experimental: "notnil".}`.
All types for which `nil` is a valid value can be annotated with the
`not nil` annotation to exclude `nil` as a valid value:
`not nil` annotation to exclude `nil` as a valid value. Note that only local
symbols are checked.
```nim
{.experimental: "notnil".}
@@ -577,8 +578,11 @@ All types for which `nil` is a valid value can be annotated with the
p(nil)
# and also this:
var x: PObject
p(x)
proc foo =
var x: PObject
p(x)
foo()
```
The compiler ensures that every code path initializes variables which contain