Merge pull request #8937 from Vindaar/fixes-8925

fix #8925 by using `getTypeInst` instead of `getType`
This commit is contained in:
Andreas Rumpf
2018-09-18 09:37:39 +02:00
committed by GitHub
2 changed files with 18 additions and 2 deletions

View File

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

16
tests/stdlib/t8925.nim Normal file
View File

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