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 @@

Imports

Types

-
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

Types

-
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 @@

Types

-
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 @@

Imports

Types

-
A {.inject.} = enum
+  
A* {.inject.} = enum
   aA
@@ -377,7 +377,7 @@

Types

-
AnotherObject = object
+  
AnotherObject* = object
   case x*: bool
   of true:
       y*: proc (x: string)
@@ -392,7 +392,7 @@ 

Types

-
B {.inject.} = enum
+  
B* {.inject.} = enum
   bB
@@ -401,7 +401,7 @@

Types

-
Foo = enum
+  
Foo* = enum
   enumValueA2
@@ -410,7 +410,7 @@

Types

-
FooBuzz {....deprecated: "FooBuzz msg".} = int
+
FooBuzz* {....deprecated: "FooBuzz msg".} = int
Deprecated: FooBuzz msg @@ -421,7 +421,7 @@

Types

-
MyObject = object
+  
MyObject* = object
   someString*: string        ## This is a string
   annotated* {.somePragma.}: string ## This is an annotated string
   
@@ -432,7 +432,7 @@

Types

-
Shapes = enum
+  
Shapes* = enum
   Circle,                   ## A circle
   Triangle,                 ## A three-sided shape
   Rectangle                  ## A four-sided shape
@@ -443,7 +443,7 @@

Types

-
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 @@

Imports

Types

-
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

Types

-
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 @@

Types

-
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 @@

Imports

Types

-
A* {.inject.} = enum
+  
A {.inject.} = enum
   aA
@@ -377,10 +377,10 @@

Types

-
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 @@ 

Types

-
B* {.inject.} = enum
+  
B {.inject.} = enum
   bB
@@ -401,7 +401,7 @@

Types

-
Foo* = enum
+  
Foo = enum
   enumValueA2
@@ -410,7 +410,7 @@

Types

-
FooBuzz* {....deprecated: "FooBuzz msg".} = int
+
FooBuzz {....deprecated: "FooBuzz msg".} = int
Deprecated: FooBuzz msg @@ -421,9 +421,9 @@

Types

-
MyObject* = object
-  someString*: string        ## This is a string
-  annotated* {.somePragma.}: string ## This is an annotated string
+  
MyObject = object
+  someString: string         ## This is a string
+  annotated {.somePragma.}: string ## This is an annotated string
   
@@ -432,7 +432,7 @@

Types

-
Shapes* = enum
+  
Shapes = enum
   Circle,                   ## A circle
   Triangle,                 ## A three-sided shape
   Rectangle                  ## A four-sided shape
@@ -443,8 +443,8 @@

Types

-
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 @@

    Types

    AnotherObject = object
    -  case x: bool
    +  case x*: bool
       of true:
    -      y: proc (x: string)
    +      y*: proc (x: string)
     
       of false:
         
    @@ -422,8 +422,8 @@ 

    Types

    MyObject = object
    -  someString: string         ## This is a string
    -  annotated {.somePragma.}: string ## This is an annotated string
    +  someString*: string        ## This is a string
    +  annotated* {.somePragma.}: string ## This is an annotated string
       
    @@ -444,7 +444,7 @@

    Types

    T19396 = object
    -  a: int
    +  a*: int