From e9addb3ab2bdcc37581f1c053d9cfa62bf86d1c0 Mon Sep 17 00:00:00 2001 From: Vindaar Date: Mon, 10 Sep 2018 16:40:28 +0200 Subject: [PATCH 1/2] fix #8925 by using `getTypeInst` instead of `getType` --- lib/pure/strscans.nim | 4 ++-- 1 file changed, 2 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 From 72a65c43a738b7d99d8e345b169c37b3de96014d Mon Sep 17 00:00:00 2001 From: Vindaar Date: Mon, 17 Sep 2018 19:56:42 +0200 Subject: [PATCH 2/2] add test case --- tests/stdlib/t8925.nim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 tests/stdlib/t8925.nim 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