diff options
Diffstat (limited to 'changelog.md')
-rw-r--r-- | changelog.md | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/changelog.md b/changelog.md index 75b848ebd..5056d7b3d 100644 --- a/changelog.md +++ b/changelog.md @@ -78,7 +78,9 @@ is often an easy workaround. - An experimental option `genericsOpenSym` has been added to allow captured symbols in generic routine bodies to be replaced by symbols injected locally by templates/macros at instantiation time. `bind` may be used to keep the - captured symbols over the injected ones regardless of enabling the option. + captured symbols over the injected ones regardless of enabling the option, + but other methods like renaming the captured symbols should be used instead + so that the code is not affected by context changes. Since this change may affect runtime behavior, the experimental switch `genericsOpenSym` needs to be enabled, and a warning is given in the case @@ -110,6 +112,13 @@ is often an easy workaround. assert baz[int]() == "captured" ``` + This option also generates a new node kind `nnkOpenSym` which contains + exactly 1 of either an `nnkSym` or an `nnkOpenSymChoice` node. In the future + this might be merged with a slightly modified `nnkOpenSymChoice` node but + macros that want to support the experimental feature should still handle + `nnkOpenSym`, as the node kind would simply not be generated as opposed to + being removed. + ## Compiler changes - `--nimcache` using a relative path as the argument in a config file is now relative to the config file instead of the current directory. |