diff options
-rw-r--r-- | doc/manual/stmts.txt | 6 | ||||
-rw-r--r-- | web/news/e031_version_0_16_2.rst | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/doc/manual/stmts.txt b/doc/manual/stmts.txt index fa1cac8e1..5668b8cc2 100644 --- a/doc/manual/stmts.txt +++ b/doc/manual/stmts.txt @@ -130,9 +130,9 @@ If a proc is annotated with the ``noinit`` pragma this refers to its implicit The implicit initialization can be also prevented by the `requiresInit`:idx: -type pragma. The compiler requires an explicit initialization then. However -it does a `control flow analysis`:idx: to prove the variable has been -initialized and does not rely on syntactic properties: +type pragma. The compiler requires an explicit initialization for the object +and all of its fields. However it does a `control flow analysis`:idx: to prove +the variable has been initialized and does not rely on syntactic properties: .. code-block:: nim type diff --git a/web/news/e031_version_0_16_2.rst b/web/news/e031_version_0_16_2.rst index a15e715d6..fd12bb822 100644 --- a/web/news/e031_version_0_16_2.rst +++ b/web/news/e031_version_0_16_2.rst @@ -49,7 +49,13 @@ Changes affecting backwards compatibility instead of signed integers. - In Nim identifiers en-dash (Unicode point U+2013) is not an alias for the underscore anymore. Use underscores and fix your programming font instead. - +- When the ``requiresInit`` pragma is applied to a record type, future versions + of Nim will also require you to initialize all the fields of the type during + object construction. For now, only a warning will be produced. +- The Object construction syntax now performs a number of additional safety + checks. When fields within case objects are initialiazed, the compiler will + now demand that the respective discriminator field has a matching known + compile-time value. Library Additions ----------------- |