mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-06 07:38:24 +00:00
fixes empty tag for nim ic (#25615)
`writeNode` writes `(empty flags type (empty))`, but it should have been
`(empty flags type)` instead
```nim
type
Meters = distinct float
Feet = distinct float
converter toMeters(f: Feet): Meters =
Meters(float(f) * 0.3048)
proc showMeters(m: Meters) =
echo float(m)
showMeters(Feet(10.0))
```
gives `[NIF decoder] expected: {ParRi} but got:
ParLe14,152,/Users/blue/.choosenim/toolchains/nim-\23devel/lib/std/private/dragonbox.nim(empty)`
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -523,9 +523,7 @@ proc writeNode(w: var Writer; dest: var TokenBuf; n: PNode; forAst = false) =
|
||||
of nkEmpty:
|
||||
if n.typField != nil:
|
||||
w.withNode dest, n:
|
||||
let info = trLineInfo(w, n.info)
|
||||
dest.addParLe pool.tags.getOrIncl(toNifTag(n.kind)), info
|
||||
dest.addParRi
|
||||
discard
|
||||
else:
|
||||
let info = trLineInfo(w, n.info)
|
||||
dest.addParLe pool.tags.getOrIncl(toNifTag(n.kind)), info
|
||||
|
||||
17
tests/ic/tconverter.nim
Normal file
17
tests/ic/tconverter.nim
Normal file
@@ -0,0 +1,17 @@
|
||||
discard """
|
||||
output:
|
||||
ok
|
||||
"""
|
||||
|
||||
type
|
||||
Meters = distinct float
|
||||
Feet = distinct float
|
||||
|
||||
converter toMeters(f: Feet): Meters =
|
||||
Meters(float(f) * 0.3048)
|
||||
|
||||
proc showMeters(m: Meters) =
|
||||
doAssert float(m) == 3.048
|
||||
echo "ok"
|
||||
|
||||
showMeters(Feet(10.0))
|
||||
Reference in New Issue
Block a user