summary refs log tree commit diff stats
path: root/lib/core
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2024-08-12 16:33:26 +0300
committerGitHub <noreply@github.com>2024-08-12 15:33:26 +0200
commit0c890ff9a70258af8231967229b891df9731a5df (patch)
treef42d7dbf06e1f9441c704f3aebb288457f3ff0ea /lib/core
parent7a0069a134aae949f310b5936c6a31270dc79316 (diff)
downloadNim-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/core')
-rw-r--r--lib/core/macros.nim4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim
index d391bf761..7646b165c 100644
--- a/lib/core/macros.nim
+++ b/lib/core/macros.nim
@@ -93,6 +93,8 @@ type
     nnkFuncDef,
     nnkTupleConstr,
     nnkError,  ## erroneous AST node
+    nnkModuleRef, nnkReplayAction, nnkNilRodNode ## internal IC nodes
+    nnkOpenSym
 
   NimNodeKinds* = set[NimNodeKind]
   NimTypeKind* = enum  # some types are no longer used, see ast.nim
@@ -1407,7 +1409,7 @@ proc `$`*(node: NimNode): string =
     result = node.basename.strVal & "*"
   of nnkStrLit..nnkTripleStrLit, nnkCommentStmt, nnkSym, nnkIdent:
     result = node.strVal
-  of nnkOpenSymChoice, nnkClosedSymChoice:
+  of nnkOpenSymChoice, nnkClosedSymChoice, nnkOpenSym:
     result = $node[0]
   of nnkAccQuoted:
     result = ""