-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Description
Problem
strformat causes compilation errors when a Natural or Positive type is attempted to be formatted with the integer presentation types present in the format string. It still works fine for plain integers.
Example
import strformat
let num = 64
echo fmt"{num:3}" # compiles & works
echo fmt"{num:3b}" # compiles & works
echo fmt"{num:3d}" # compiles & works
echo fmt"{num:3o}" # compiles & works
echo fmt"{num:3x}" # compiles & works
echo fmt"{num:3X}" # compiles & works
let pos: Positive = 64
echo fmt"{pos:3}" # compiles & works
#echo fmt"{pos:3b}" # doesn't compile
#echo fmt"{pos:3d}" # doesn't compile
#echo fmt"{pos:3o}" # doesn't compile
#echo fmt"{pos:3x}" # doesn't compile
#echo fmt"{pos:3X}" # doesn't compile
let nat: Natural = 64
echo fmt"{nat:3}" # compiles & works
#echo fmt"{nat:3b}" # doesn't compile
#echo fmt"{nat:3d}" # doesn't compile
#echo fmt"{nat:3o}" # doesn't compile
#echo fmt"{nat:3x}" # doesn't compile
#echo fmt"{nat:3X}" # doesn't compileError message
The error message is along these lines in all cases:
C:\dev\nim-0.20.0\lib\pure\strformat.nim(514) formatValue
C:\dev\nim-0.20.0\lib\pure\strformat.nim(504) formatValue
Error: unhandled exception: invalid type in format string for string, expected 's', but got x [ValueError]
Additional Information
- Nim version:
Nim Compiler Version 0.20.0 [Windows: amd64]
Compiled at 2019-06-06
Copyright (c) 2006-2019 by Andreas Rumpf
git hash: e7471cebae2a404f3e4239f199f5a0c422484aac
active boot switches: -d:release
- This was working perfectly fine on pre-0.20.0 releases.