diff options
author | metagn <metagngn@gmail.com> | 2024-08-12 16:33:26 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-12 15:33:26 +0200 |
commit | 0c890ff9a70258af8231967229b891df9731a5df (patch) | |
tree | f42d7dbf06e1f9441c704f3aebb288457f3ff0ea /lib/pure/sugar.nim | |
parent | 7a0069a134aae949f310b5936c6a31270dc79316 (diff) | |
download | Nim-0c890ff9a70258af8231967229b891df9731a5df.tar.gz |
opensym as node kind + fixed experimental switch (#23892)
refs https://github.com/nim-lang/Nim/pull/23873#discussion_r1687995060, fixes #23386, fixes #23385, supersedes #23572 Turns the `nfOpenSym` node flag implemented in #23091 and extended in #23102 and #23873, into a node kind `nkOpenSym` that forms a unary node containing either `nkSym` or `nkOpenSymChoice`. Since this affects macros working on generic proc AST, the node kind is now only generated when the experimental switch `genericsOpenSym` is enabled, and a new node flag `nfDisabledOpenSym` is set to the `nkSym` or `nkOpenSymChoice` when the switch is not enabled so that we can give a warning. Now that the experimental switch has more reasonable semantics, we define `nimHasGenericsOpenSym2`.
Diffstat (limited to 'lib/pure/sugar.nim')
-rw-r--r-- | lib/pure/sugar.nim | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/pure/sugar.nim b/lib/pure/sugar.nim index 7833ed063..e3ec99b0c 100644 --- a/lib/pure/sugar.nim +++ b/lib/pure/sugar.nim @@ -345,7 +345,7 @@ proc collectImpl(init, body: NimNode): NimNode {.since: (1, 1).} = let res = genSym(nskVar, "collectResult") var bracketExpr: NimNode if init != nil: - expectKind init, {nnkCall, nnkIdent, nnkSym, nnkClosedSymChoice, nnkOpenSymChoice} + expectKind init, {nnkCall, nnkIdent, nnkSym, nnkClosedSymChoice, nnkOpenSymChoice, nnkOpenSym} bracketExpr = newTree(nnkBracketExpr, if init.kind in {nnkCall, nnkClosedSymChoice, nnkOpenSymChoice}: freshIdentNodes(init[0]) else: freshIdentNodes(init)) |