From 085324419ed1ee096299bcd75dc9f0fc17660507 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Mon, 18 Dec 2023 20:55:37 +0300
Subject: [PATCH 1/7] retain postfix node in type section typed AST
fixes #22933
---
compiler/semstmts.nim | 13 +++++++++++--
tests/macros/tastrepr.nim | 5 +++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index a0eda36d1ead..81d80f1c9021 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -1259,6 +1259,9 @@ proc typeSectionTypeName(c: PContext; n: PNode): PNode =
result = n[0]
else:
result = n
+ if result.kind == nkPostfix:
+ if result.len != 2: illFormedAst(n, c.config)
+ result = result[1]
if result.kind != nkSym: illFormedAst(n, c.config)
proc typeDefLeftSidePass(c: PContext, typeSection: PNode, i: int) =
@@ -1326,9 +1329,15 @@ proc typeDefLeftSidePass(c: PContext, typeSection: PNode, i: int) =
elif s.owner == nil: s.owner = getCurrOwner(c)
if name.kind == nkPragmaExpr:
- typeDef[0][0] = newSymNode(s)
+ if name[0].kind == nkPostfix:
+ typeDef[0][0][1] = newSymNode(s)
+ else:
+ typeDef[0][0] = newSymNode(s)
else:
- typeDef[0] = newSymNode(s)
+ if name.kind == nkPostfix:
+ typeDef[0][1] = newSymNode(s)
+ else:
+ typeDef[0] = newSymNode(s)
proc typeSectionLeftSidePass(c: PContext, n: PNode) =
# process the symbols on the left side for the whole type section, before
diff --git a/tests/macros/tastrepr.nim b/tests/macros/tastrepr.nim
index c04498a25b37..668904caec22 100644
--- a/tests/macros/tastrepr.nim
+++ b/tests/macros/tastrepr.nim
@@ -11,6 +11,8 @@ for i, (x, y) in pairs(data):
var
a = 1
b = 2
+type
+ A* = object
var data = @[(1, "one"), (2, "two")]
for (i, d) in pairs(data):
@@ -20,6 +22,8 @@ for i, d in pairs(data):
for i, (x, y) in pairs(data):
discard
var (a, b) = (1, 2)
+type
+ A* = object
'''
"""
@@ -44,3 +48,4 @@ echoTypedAndUntypedRepr:
for i, (x,y) in pairs(data):
discard
var (a,b) = (1,2)
+ type A* = object # issue #22933
From 4a69d939ccb5954c03be3610ddf3c83a1ab0c449 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Mon, 18 Dec 2023 21:01:04 +0300
Subject: [PATCH 2/7] hopefully this doesn't drag out too long
---
compiler/semstmts.nim | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index 81d80f1c9021..5a0968ba55cb 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -1547,8 +1547,15 @@ proc typeSectionRightSidePass(c: PContext, n: PNode) =
of nkSym: obj.ast[0] = symNode
of nkPragmaExpr:
obj.ast[0] = a[0].shallowCopy
- obj.ast[0][0] = symNode
+ if a[0][0].kind == nkPostfix:
+ obj.ast[0][0] = a[0][0].shallowCopy
+ obj.ast[0][0][1] = symNode
+ else:
+ obj.ast[0][0] = symNode
obj.ast[0][1] = a[0][1]
+ of nkPostfix:
+ obj.ast[0] = a[0].shallowCopy
+ obj.ast[0][1] = symNode
else: assert(false)
obj.ast[1] = a[1]
obj.ast[2] = a[2][0]
From da1e841a36600f82a66c55544f0b7c43a2b628b6 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Mon, 18 Dec 2023 22:05:09 +0300
Subject: [PATCH 3/7] fix nim CI, disable NESM, wait for unchained [skip ci]
---
testament/important_packages.nim | 3 ++-
tests/macros/tgetimpl.nim | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/testament/important_packages.nim b/testament/important_packages.nim
index d3d3f0643788..d056dac69db9 100644
--- a/testament/important_packages.nim
+++ b/testament/important_packages.nim
@@ -97,7 +97,8 @@ pkg "memo"
pkg "msgpack4nim", "nim c -r tests/test_spec.nim"
pkg "nake", "nim c nakefile.nim"
pkg "neo", "nim c -d:blas=openblas --mm:refc tests/all.nim", url = "https://github.com/nim-lang/neo"
-pkg "nesm", "nimble tests", "https://github.com/nim-lang/NESM", useHead = true
+pkg "nesm", "nimble tests", "https://github.com/nim-lang/NESM", useHead = true, allowFailure = true
+ # inactive, tests not adapted to #23096
pkg "netty"
pkg "nico", allowFailure = true
pkg "nicy", "nim c -r src/nicy.nim"
diff --git a/tests/macros/tgetimpl.nim b/tests/macros/tgetimpl.nim
index 3989576729b6..e215d2696849 100644
--- a/tests/macros/tgetimpl.nim
+++ b/tests/macros/tgetimpl.nim
@@ -75,7 +75,9 @@ assert: check_gen_proc(len(a)) == (false, true)
macro check(x: type): untyped =
let z = getType(x)
let y = getImpl(z[1])
- let sym = if y[0].kind == nnkSym: y[0] else: y[0][0]
+ var sym = y[0]
+ if sym.kind == nnkPragmaExpr: sym = sym[0]
+ if sym.kind == nnkPostfix: sym = sym[1]
expectKind(z[1], nnkSym)
expectKind(sym, nnkSym)
expectKind(y[2], nnkObjectTy)
From 72b480f37bbba0b019f919979bcc8297c39e7980 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Tue, 19 Dec 2023 20:41:21 +0300
Subject: [PATCH 4/7] fix/adapt docgen
---
compiler/docgen.nim | 16 ++++++----
nimdoc/extlinks/project/expected/main.html | 4 +--
.../project/expected/sub/submodule.html | 4 +--
.../expected/subdir/subdir_b/utils.html | 8 ++---
nimdoc/testproject/expected/testproject.html | 32 +++++++++----------
5 files changed, 34 insertions(+), 30 deletions(-)
diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index bf8bdde143a4..9fb201f73ea5 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -1086,6 +1086,9 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind, docFlags: DocFlags, nonEx
symbolOrIdEnc = encodeUrl(symbolOrId, usePlus = false)
deprecationMsg = genDeprecationMsg(d, pragmaNode)
rstLangSymbol = toLangSymbol(k, n, cleanPlainSymbol)
+ symNameNode =
+ if nameNode.kind == nkPostfix: nameNode[1]
+ else: nameNode
# we generate anchors automatically for subsequent use in doc comments
let lineinfo = rstast.TLineInfo(
@@ -1122,18 +1125,19 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind, docFlags: DocFlags, nonEx
let external = d.destFile.AbsoluteFile.relativeTo(d.conf.outDir, '/').changeFileExt(HtmlExt).string
var attype = ""
- if k in routineKinds and nameNode.kind == nkSym:
+ if k in routineKinds and symNameNode.kind == nkSym:
let att = attachToType(d, nameNode.sym)
if att != nil:
attype = esc(d.target, att.name.s)
- elif k == skType and nameNode.kind == nkSym and nameNode.sym.typ.kind in {tyEnum, tyBool}:
- let etyp = nameNode.sym.typ
+ elif k == skType and symNameNode.kind == nkSym and
+ symNameNode.sym.typ.kind in {tyEnum, tyBool}:
+ let etyp = symNameNode.sym.typ
for e in etyp.n:
if e.sym.kind != skEnumField: continue
let plain = renderPlainSymbolName(e)
let symbolOrId = d.newUniquePlainSymbol(plain)
setIndexTerm(d[], ieNim, htmlFile = external, id = symbolOrId,
- term = plain, linkTitle = nameNode.sym.name.s & '.' & plain,
+ term = plain, linkTitle = symNameNode.sym.name.s & '.' & plain,
linkDesc = xmltree.escape(getPlainDocstring(e).docstringSummary),
line = n.info.line.int)
@@ -1154,8 +1158,8 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind, docFlags: DocFlags, nonEx
linkTitle = detailedName,
linkDesc = xmltree.escape(plainDocstring.docstringSummary),
line = n.info.line.int)
- if k == skType and nameNode.kind == nkSym:
- d.types.strTableAdd nameNode.sym
+ if k == skType and symNameNode.kind == nkSym:
+ d.types.strTableAdd symNameNode.sym
proc genJsonItem(d: PDoc, n, nameNode: PNode, k: TSymKind, nonExports = false): JsonItem =
if not isVisible(d, nameNode): return
diff --git a/nimdoc/extlinks/project/expected/main.html b/nimdoc/extlinks/project/expected/main.html
index 1a58ea2ac7b0..e1afdf15e660 100644
--- a/nimdoc/extlinks/project/expected/main.html
+++ b/nimdoc/extlinks/project/expected/main.html
@@ -55,7 +55,7 @@
nimdoc/extlinks/project/main
Types
@@ -95,7 +95,7 @@
-
A = object
+
A* = object
-
diff --git a/nimdoc/extlinks/project/expected/sub/submodule.html b/nimdoc/extlinks/project/expected/sub/submodule.html
index 60887ae37ad3..4cacd6f212c7 100644
--- a/nimdoc/extlinks/project/expected/sub/submodule.html
+++ b/nimdoc/extlinks/project/expected/sub/submodule.html
@@ -51,7 +51,7 @@
nimdoc/extlinks/project/sub/submodule
Types
@@ -84,7 +84,7 @@ nimdoc/extlinks/project/sub/submodule
-
submoduleInt = distinct int
+
submoduleInt* = distinct int
-
diff --git a/nimdoc/testproject/expected/subdir/subdir_b/utils.html b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
index ba9512d5a9d7..64fbe846e1e8 100644
--- a/nimdoc/testproject/expected/subdir/subdir_b/utils.html
+++ b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
@@ -59,8 +59,8 @@
subdir/subdir_b/utils
Types
@@ -253,7 +253,7 @@ Types
-
G[T] = object
+
G*[T] = object
-
@@ -262,7 +262,7 @@
-
SomeType = enum
+
SomeType* = enum
enumValueA, enumValueB, enumValueC
-
diff --git a/nimdoc/testproject/expected/testproject.html b/nimdoc/testproject/expected/testproject.html
index db49102f85aa..d4d9f0912115 100644
--- a/nimdoc/testproject/expected/testproject.html
+++ b/nimdoc/testproject/expected/testproject.html
@@ -54,27 +54,27 @@
testproject
Types
@@ -368,7 +368,7 @@
-
A {.inject.} = enum
+
A* {.inject.} = enum
aA
-
@@ -377,7 +377,7 @@
-
B {.inject.} = enum
+
B* {.inject.} = enum
bB
-
@@ -401,7 +401,7 @@
-
Foo = enum
+
Foo* = enum
enumValueA2
-
@@ -410,7 +410,7 @@
-
FooBuzz {....deprecated: "FooBuzz msg".} = int
+
FooBuzz* {....deprecated: "FooBuzz msg".} = int
-
Deprecated: FooBuzz msg
@@ -421,7 +421,7 @@
-
MyObject = object
+
MyObject* = object
someString*: string
annotated* {.somePragma.}: string
@@ -432,7 +432,7 @@
-
Shapes = enum
+
Shapes* = enum
Circle,
Triangle,
Rectangle
@@ -443,7 +443,7 @@
-
T19396 = object
+
T19396* = object
a*: int
-
From 30ef941419c0d751440136dfdc31fbbaf3bf2a50 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Fri, 22 Dec 2023 11:39:58 +0300
Subject: [PATCH 5/7] no postfixes in doc renders anymore
---
compiler/docgen.nim | 2 +-
compiler/renderer.nim | 11 +++++---
nimdoc/extlinks/project/expected/main.html | 2 +-
.../project/expected/sub/submodule.html | 2 +-
.../expected/subdir/subdir_b/utils.html | 4 +--
nimdoc/testproject/expected/testproject.html | 26 +++++++++----------
6 files changed, 26 insertions(+), 21 deletions(-)
diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 9fb201f73ea5..54066587b780 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -1059,7 +1059,7 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind, docFlags: DocFlags, nonEx
# Obtain the plain rendered string for hyperlink titles.
var r: TSrcGen = initTokRender(n, {renderNoBody, renderNoComments, renderDocComments,
- renderNoPragmas, renderNoProcDefs, renderExpandUsing})
+ renderNoPragmas, renderNoProcDefs, renderExpandUsing, renderNoPostfix})
while true:
getNextTok(r, kind, literal)
if kind == tkEof:
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index bc1cbd65e908..d684c675a522 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -25,7 +25,7 @@ type
TRenderFlag* = enum
renderNone, renderNoBody, renderNoComments, renderDocComments,
renderNoPragmas, renderIds, renderNoProcDefs, renderSyms, renderRunnableExamples,
- renderIr, renderNonExportedFields, renderExpandUsing
+ renderIr, renderNonExportedFields, renderExpandUsing, renderNoPostfix
TRenderFlags* = set[TRenderFlag]
TRenderTok* = object
@@ -546,7 +546,11 @@ proc lsub(g: TSrcGen; n: PNode): int =
of nkInfix: result = lsons(g, n) + 2
of nkPrefix:
result = lsons(g, n)+1+(if n.len > 0 and n[1].kind == nkInfix: 2 else: 0)
- of nkPostfix: result = lsons(g, n)
+ of nkPostfix:
+ if renderNoPostfix notin g.flags:
+ result = lsons(g, n)
+ else:
+ result = lsub(g, n[1])
of nkCallStrLit: result = lsons(g, n)
of nkPragmaExpr: result = lsub(g, n[0]) + lcomma(g, n, 1)
of nkRange: result = lsons(g, n) + 2
@@ -1416,7 +1420,8 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext, fromStmtList = false) =
postStatements(g, n, i, fromStmtList)
of nkPostfix:
gsub(g, n, 1)
- gsub(g, n, 0)
+ if renderNoPostfix notin g.flags:
+ gsub(g, n, 0)
of nkRange:
gsub(g, n, 0)
put(g, tkDotDot, "..")
diff --git a/nimdoc/extlinks/project/expected/main.html b/nimdoc/extlinks/project/expected/main.html
index e1afdf15e660..bb80b551d6d5 100644
--- a/nimdoc/extlinks/project/expected/main.html
+++ b/nimdoc/extlinks/project/expected/main.html
@@ -55,7 +55,7 @@
nimdoc/extlinks/project/main
Types
diff --git a/nimdoc/extlinks/project/expected/sub/submodule.html b/nimdoc/extlinks/project/expected/sub/submodule.html
index 4cacd6f212c7..f30123eeefe9 100644
--- a/nimdoc/extlinks/project/expected/sub/submodule.html
+++ b/nimdoc/extlinks/project/expected/sub/submodule.html
@@ -51,7 +51,7 @@ nimdoc/extlinks/project/sub/submodule
Types
diff --git a/nimdoc/testproject/expected/subdir/subdir_b/utils.html b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
index 64fbe846e1e8..b1c0f4e3ed92 100644
--- a/nimdoc/testproject/expected/subdir/subdir_b/utils.html
+++ b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
@@ -59,8 +59,8 @@ subdir/subdir_b/utils
Types
diff --git a/nimdoc/testproject/expected/testproject.html b/nimdoc/testproject/expected/testproject.html
index d4d9f0912115..6486b5581aa6 100644
--- a/nimdoc/testproject/expected/testproject.html
+++ b/nimdoc/testproject/expected/testproject.html
@@ -54,28 +54,28 @@ testproject
Types
From 8acb12cb194a787c553243a296e15b19b25771e1 Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Fri, 22 Dec 2023 11:45:05 +0300
Subject: [PATCH 6/7] use renderNoPostfix everywhere
---
compiler/docgen.nim | 13 +++++-----
nimdoc/extlinks/project/expected/main.html | 2 +-
.../project/expected/sub/submodule.html | 2 +-
.../expected/subdir/subdir_b/utils.html | 4 +--
nimdoc/testproject/expected/testproject.html | 26 +++++++++----------
5 files changed, 24 insertions(+), 23 deletions(-)
diff --git a/compiler/docgen.nim b/compiler/docgen.nim
index 54066587b780..b4c4baa2b673 100644
--- a/compiler/docgen.nim
+++ b/compiler/docgen.nim
@@ -1031,7 +1031,7 @@ proc toLangSymbol(k: TSymKind, n: PNode, baseName: string): LangSymbol =
if genNode != nil:
var literal = ""
var r: TSrcGen = initTokRender(genNode, {renderNoBody, renderNoComments,
- renderNoPragmas, renderNoProcDefs, renderExpandUsing})
+ renderNoPragmas, renderNoProcDefs, renderExpandUsing, renderNoPostfix})
var kind = tkEof
while true:
getNextTok(r, kind, literal)
@@ -1099,10 +1099,10 @@ proc genItem(d: PDoc, n, nameNode: PNode, k: TSymKind, docFlags: DocFlags, nonEx
priority = symbolPriority(k), info = lineinfo,
module = addRstFileIndex(d, FileIndex d.module.position))
- let renderFlags =
- if nonExports: {renderNoBody, renderNoComments, renderDocComments, renderSyms,
- renderExpandUsing, renderNonExportedFields}
- else: {renderNoBody, renderNoComments, renderDocComments, renderSyms, renderExpandUsing}
+ var renderFlags = {renderNoBody, renderNoComments, renderDocComments,
+ renderSyms, renderExpandUsing, renderNoPostfix}
+ if nonExports:
+ renderFlags.incl renderNonExportedFields
nodeToHighlightedHtml(d, n, result, renderFlags, symbolOrIdEnc)
let seeSrc = genSeeSrc(d, toFullPath(d.conf, n.info), n.info.line.int)
@@ -1167,7 +1167,8 @@ proc genJsonItem(d: PDoc, n, nameNode: PNode, k: TSymKind, nonExports = false):
name = getNameEsc(d, nameNode)
comm = genRecComment(d, n)
r: TSrcGen
- renderFlags = {renderNoBody, renderNoComments, renderDocComments, renderExpandUsing}
+ renderFlags = {renderNoBody, renderNoComments, renderDocComments,
+ renderExpandUsing, renderNoPostfix}
if nonExports:
renderFlags.incl renderNonExportedFields
r = initTokRender(n, renderFlags)
diff --git a/nimdoc/extlinks/project/expected/main.html b/nimdoc/extlinks/project/expected/main.html
index bb80b551d6d5..1a58ea2ac7b0 100644
--- a/nimdoc/extlinks/project/expected/main.html
+++ b/nimdoc/extlinks/project/expected/main.html
@@ -95,7 +95,7 @@
-
A* = object
+
A = object
-
diff --git a/nimdoc/extlinks/project/expected/sub/submodule.html b/nimdoc/extlinks/project/expected/sub/submodule.html
index f30123eeefe9..60887ae37ad3 100644
--- a/nimdoc/extlinks/project/expected/sub/submodule.html
+++ b/nimdoc/extlinks/project/expected/sub/submodule.html
@@ -84,7 +84,7 @@
nimdoc/extlinks/project/sub/submodule
-
submoduleInt* = distinct int
+
submoduleInt = distinct int
-
diff --git a/nimdoc/testproject/expected/subdir/subdir_b/utils.html b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
index b1c0f4e3ed92..ba9512d5a9d7 100644
--- a/nimdoc/testproject/expected/subdir/subdir_b/utils.html
+++ b/nimdoc/testproject/expected/subdir/subdir_b/utils.html
@@ -253,7 +253,7 @@
Types
-
G*[T] = object
+
G[T] = object
-
@@ -262,7 +262,7 @@
-
SomeType* = enum
+
SomeType = enum
enumValueA, enumValueB, enumValueC
-
diff --git a/nimdoc/testproject/expected/testproject.html b/nimdoc/testproject/expected/testproject.html
index 6486b5581aa6..48c8e86ab176 100644
--- a/nimdoc/testproject/expected/testproject.html
+++ b/nimdoc/testproject/expected/testproject.html
@@ -368,7 +368,7 @@
-
A* {.inject.} = enum
+
A {.inject.} = enum
aA
-
@@ -377,10 +377,10 @@
-
AnotherObject* = object
- case x*: bool
+
AnotherObject = object
+ case x: bool
of true:
- y*: proc (x: string)
+ y: proc (x: string)
of false:
@@ -392,7 +392,7 @@
-
B* {.inject.} = enum
+
B {.inject.} = enum
bB
-
@@ -401,7 +401,7 @@
-
Foo* = enum
+
Foo = enum
enumValueA2
-
@@ -410,7 +410,7 @@
-
FooBuzz* {....deprecated: "FooBuzz msg".} = int
+
FooBuzz {....deprecated: "FooBuzz msg".} = int
-
Deprecated: FooBuzz msg
@@ -421,9 +421,9 @@
-
MyObject* = object
- someString*: string
- annotated* {.somePragma.}: string
+
MyObject = object
+ someString: string
+ annotated {.somePragma.}: string
-
@@ -432,7 +432,7 @@
-
Shapes* = enum
+
Shapes = enum
Circle,
Triangle,
Rectangle
@@ -443,8 +443,8 @@
-
T19396* = object
- a*: int
+
T19396 = object
+ a: int
-
From 69111aab56054c7af5ecfae7f2a7bba8cbf5b4cb Mon Sep 17 00:00:00 2001
From: metagn <10591326+metagn@users.noreply.github.com>
Date: Fri, 22 Dec 2023 12:04:11 +0300
Subject: [PATCH 7/7] render fields anyway
---
compiler/renderer.nim | 14 ++++++++++----
nimdoc/testproject/expected/testproject.html | 20 ++++++++++----------
2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index d684c675a522..e9f0d2be9ef5 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -1334,14 +1334,20 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext, fromStmtList = false) =
put(g, tkColon, ":")
gsub(g, n, bodyPos)
of nkIdentDefs:
- # Skip if this is a property in a type and its not exported
- # (While also not allowing rendering of non exported fields)
- if ObjectDef in g.inside and (not n[0].isExported() and renderNonExportedFields notin g.flags):
- return
+ var exclFlags: TRenderFlags = {}
+ if ObjectDef in g.inside:
+ if not n[0].isExported() and renderNonExportedFields notin g.flags:
+ # Skip if this is a property in a type and its not exported
+ # (While also not allowing rendering of non exported fields)
+ return
+ # render postfix for object fields:
+ exclFlags = g.flags * {renderNoPostfix}
# We render the identDef without being inside the section incase we render something like
# y: proc (x: string) # (We wouldn't want to check if x is exported)
g.outside(ObjectDef):
+ g.flags.excl(exclFlags)
gcomma(g, n, 0, -3)
+ g.flags.incl(exclFlags)
if n.len >= 2 and n[^2].kind != nkEmpty:
putWithSpace(g, tkColon, ":")
gsub(g, n[^2], c)
diff --git a/nimdoc/testproject/expected/testproject.html b/nimdoc/testproject/expected/testproject.html
index 48c8e86ab176..db49102f85aa 100644
--- a/nimdoc/testproject/expected/testproject.html
+++ b/nimdoc/testproject/expected/testproject.html
@@ -57,9 +57,9 @@
testproject
- A
- AnotherObject
- testproject
enumValueA2">Foo
- FooBuzz
- MyObject
+ someString*: string ## This is a string
+ annotated* {.somePragma.}: string ## This is an annotated string">MyObject
- Shapes
- T19396
+ a*: int">T19396
@@ -378,9 +378,9 @@
AnotherObject = object
- case x: bool
+ case x*: bool
of true:
- y: proc (x: string)
+ y*: proc (x: string)
of false:
@@ -422,8 +422,8 @@
MyObject = object
- someString: string
- annotated {.somePragma.}: string
+ someString*: string
+ annotated* {.somePragma.}: string
-
@@ -444,7 +444,7 @@
T19396 = object
- a: int
+ a*: int
-