summary refs log tree commit diff stats
path: root/testament
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2024-09-18 20:27:09 +0300
committerGitHub <noreply@github.com>2024-09-18 19:27:09 +0200
commit0c3573e4a0628bbaa8b09dcd854bdc2702948bbc (patch)
tree0395872790437f6eebf2c52a8401fbbb22254d33 /testament
parent79b17b7c05f66a032949135f4d5a4a62ab9c36a0 (diff)
downloadNim-0c3573e4a0628bbaa8b09dcd854bdc2702948bbc.tar.gz
make `genericsOpenSym` work at instantiation time, new behavior in `openSym` (#24111)
alternative to #24101

#23892 changed the opensym experimental switch so that it has to be
enabled in the context of the generic/template declarations capturing
the symbols, not the context of the instantiation of the
generics/templates. This was to be in line with where the compiler gives
the warnings and changes behavior in a potentially breaking way.

However `results` [depends on the old
behavior](https://github.com/arnetheduck/nim-results/blob/71d404b314479a6205bfd050f4fe5fe49cdafc69/results.nim#L1428),
so that the callers of the macros provided by results always take
advantage of the opensym behavior. To accomodate this, we change the
behavior of the old experimental option that `results` uses,
`genericsOpenSym`, so that ignores the information of whether or not
symbols are intentionally opened and always gives the opensym behavior
as long as it's enabled at instantiation time. This should keep
`results` working as is. However this differs from the normal opensym
switch in that it doesn't generate `nnkOpenSym`.

Before it was just a generics-only version of `openSym` along with
`templateOpenSym` which was only for templates. So `templateOpenSym` is
removed along with this change, but no one appears to have used it.
Diffstat (limited to 'testament')
0 files changed, 0 insertions, 0 deletions