implements #78
This commit is contained in:
parent
7a48942719
commit
0e439ce367
6 changed files with 20 additions and 5 deletions
|
|
@ -94,7 +94,7 @@ proc notFoundError*(c: PContext, n: PNode, errors: CandidateErrors) =
|
||||||
|
|
||||||
var prefer = preferName
|
var prefer = preferName
|
||||||
for err in errors:
|
for err in errors:
|
||||||
var errProto = "("
|
var errProto = ""
|
||||||
let n = err.typ.n
|
let n = err.typ.n
|
||||||
for i in countup(1, n.len - 1):
|
for i in countup(1, n.len - 1):
|
||||||
var p = n.sons[i]
|
var p = n.sons[i]
|
||||||
|
|
@ -102,7 +102,6 @@ proc notFoundError*(c: PContext, n: PNode, errors: CandidateErrors) =
|
||||||
add(errProto, typeToString(p.sym.typ, prefer))
|
add(errProto, typeToString(p.sym.typ, prefer))
|
||||||
if i != n.len-1: add(errProto, ", ")
|
if i != n.len-1: add(errProto, ", ")
|
||||||
# else: ignore internal error as we're already in error handling mode
|
# else: ignore internal error as we're already in error handling mode
|
||||||
add(errProto, ')')
|
|
||||||
if errProto == proto:
|
if errProto == proto:
|
||||||
prefer = preferModuleInfo
|
prefer = preferModuleInfo
|
||||||
break
|
break
|
||||||
|
|
|
||||||
|
|
@ -419,10 +419,10 @@ proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
|
||||||
sfAnon notin t.sym.flags:
|
sfAnon notin t.sym.flags:
|
||||||
if t.kind == tyInt and isIntLit(t):
|
if t.kind == tyInt and isIntLit(t):
|
||||||
return t.sym.name.s & " literal(" & $t.n.intVal & ")"
|
return t.sym.name.s & " literal(" & $t.n.intVal & ")"
|
||||||
if prefer == preferName:
|
if prefer == preferName or t.sym.owner.isNil:
|
||||||
return t.sym.name.s
|
return t.sym.name.s
|
||||||
else:
|
else:
|
||||||
return t.sym.skipGenericOwner.name.s & '.' & t.sym.name.s
|
return t.sym.owner.name.s & '.' & t.sym.name.s
|
||||||
case t.kind
|
case t.kind
|
||||||
of tyInt:
|
of tyInt:
|
||||||
if not isIntLit(t) or prefer == preferExported:
|
if not isIntLit(t) or prefer == preferExported:
|
||||||
|
|
|
||||||
1
csources
1
csources
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit b0bcf88e26730b23d22e2663adf1babb05bd5a71
|
|
||||||
2
tests/clearmsg/mb.nim
Normal file
2
tests/clearmsg/mb.nim
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
type
|
||||||
|
typ* = distinct string
|
||||||
3
tests/clearmsg/mc.nim
Normal file
3
tests/clearmsg/mc.nim
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
type
|
||||||
|
typ* = distinct int
|
||||||
12
tests/clearmsg/ta.nim
Normal file
12
tests/clearmsg/ta.nim
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
discard """
|
||||||
|
errormsg: 'type mismatch: got (mc.typ)'
|
||||||
|
line: 12
|
||||||
|
"""
|
||||||
|
|
||||||
|
import mb, mc
|
||||||
|
|
||||||
|
proc test(testing: mb.typ) =
|
||||||
|
discard
|
||||||
|
|
||||||
|
var s: mc.typ
|
||||||
|
test(s)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue