parent
d701de5733
commit
a20a8e6adb
2 changed files with 22 additions and 2 deletions
|
|
@ -1086,8 +1086,12 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation =
|
||||||
of tyBuiltInTypeClass:
|
of tyBuiltInTypeClass:
|
||||||
considerPreviousT:
|
considerPreviousT:
|
||||||
let targetKind = f.sons[0].kind
|
let targetKind = f.sons[0].kind
|
||||||
if targetKind == a.skipTypes({tyRange, tyGenericInst, tyBuiltInTypeClass, tyAlias}).kind or
|
let effectiveArgType = a.skipTypes({tyRange, tyGenericInst,
|
||||||
(targetKind in {tyProc, tyPointer} and a.kind == tyNil):
|
tyBuiltInTypeClass, tyAlias})
|
||||||
|
let typeClassMatches = targetKind == effectiveArgType.kind and
|
||||||
|
not effectiveArgType.isEmptyContainer
|
||||||
|
if typeClassMatches or
|
||||||
|
(targetKind in {tyProc, tyPointer} and effectiveArgType.kind == tyNil):
|
||||||
put(c, f, a)
|
put(c, f, a)
|
||||||
return isGeneric
|
return isGeneric
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
16
tests/errmsgs/t4756.nim
Normal file
16
tests/errmsgs/t4756.nim
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
discard """
|
||||||
|
errormsg: "type mismatch: got (string, arr: seq[empty])"
|
||||||
|
line: 15
|
||||||
|
"""
|
||||||
|
|
||||||
|
# https://github.com/nim-lang/Nim/issues/4756
|
||||||
|
|
||||||
|
type
|
||||||
|
Test* = ref object
|
||||||
|
name*: string
|
||||||
|
|
||||||
|
proc newTest(name: string, arr: seq): Test =
|
||||||
|
result = Test(name: name)
|
||||||
|
|
||||||
|
let test = newTest("test", arr = @[])
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue