diff options
-rw-r--r-- | lib/pure/strscans.nim | 4 | ||||
-rw-r--r-- | tests/stdlib/t8925.nim | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/pure/strscans.nim b/lib/pure/strscans.nim index 734317e67..77763ff43 100644 --- a/lib/pure/strscans.nim +++ b/lib/pure/strscans.nim @@ -317,8 +317,8 @@ macro scanf*(input: string; pattern: static[string]; results: varargs[typed]): b template at(s: string; i: int): char = (if i < s.len: s[i] else: '\0') template matchError() = - error("type mismatch between pattern '$" & pattern[p] & "' (position: " & $p & ") and " & repr(getType(results[i])) & - " var '" & repr(results[i]) & "'") + error("type mismatch between pattern '$" & pattern[p] & "' (position: " & $p & + ") and " & $getTypeInst(results[i]) & " var '" & repr(results[i]) & "'") var i = 0 var p = 0 diff --git a/tests/stdlib/t8925.nim b/tests/stdlib/t8925.nim new file mode 100644 index 000000000..d3dc1ea86 --- /dev/null +++ b/tests/stdlib/t8925.nim @@ -0,0 +1,16 @@ +discard """ + file: "strscans.nim" + errormsg: "type mismatch between pattern '$i' (position: 1) and HourRange var 'hour'" +""" + +import strscans + +type + HourRange = range[0..23] + +var + hour: HourRange + timeStr: string + +if scanf(timeStr, "$i", hour): + discard |