diff options
-rw-r--r-- | compiler/sigmatch.nim | 3 | ||||
-rw-r--r-- | tests/errmsgs/twrong_at_operator.nim | 15 |
2 files changed, 17 insertions, 1 deletions
diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index e4509ff91..2b45a2452 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -1145,7 +1145,8 @@ proc typeRelImpl(c: var TCandidate, f, aOrig: PType, else: fRange = prev let ff = f.sons[1].skipTypes({tyTypeDesc}) - let aa = a.sons[1].skipTypes({tyTypeDesc}) + # This typeDesc rule is wrong, see bug #7331 + let aa = a.sons[1] #.skipTypes({tyTypeDesc}) if f.sons[0].kind != tyGenericParam and aa.kind == tyEmpty: result = isGeneric diff --git a/tests/errmsgs/twrong_at_operator.nim b/tests/errmsgs/twrong_at_operator.nim new file mode 100644 index 000000000..b6b3d101f --- /dev/null +++ b/tests/errmsgs/twrong_at_operator.nim @@ -0,0 +1,15 @@ +discard """ +errormsg: "type mismatch: got <array[0..0, type int]>" +line: 15 +nimout: ''' +twrong_at_operator.nim(15, 30) Error: type mismatch: got <array[0..0, type int]> +but expected one of: +proc `@`[T](a: openArray[T]): seq[T] +proc `@`[IDX, T](a: array[IDX, T]): seq[T] + +expression: @[int] +''' +""" + +# bug #7331 +var seqOfStrings: seq[int] = @[int] |