implements #78

This commit is contained in:
Araq
2014-10-26 22:48:54 +01:00
parent 7a48942719
commit 0e439ce367
6 changed files with 20 additions and 5 deletions

View File

@@ -94,7 +94,7 @@ proc notFoundError*(c: PContext, n: PNode, errors: CandidateErrors) =
var prefer = preferName
for err in errors:
var errProto = "("
var errProto = ""
let n = err.typ.n
for i in countup(1, n.len - 1):
var p = n.sons[i]
@@ -102,7 +102,6 @@ proc notFoundError*(c: PContext, n: PNode, errors: CandidateErrors) =
add(errProto, typeToString(p.sym.typ, prefer))
if i != n.len-1: add(errProto, ", ")
# else: ignore internal error as we're already in error handling mode
add(errProto, ')')
if errProto == proto:
prefer = preferModuleInfo
break

View File

@@ -419,10 +419,10 @@ proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
sfAnon notin t.sym.flags:
if t.kind == tyInt and isIntLit(t):
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
else:
return t.sym.skipGenericOwner.name.s & '.' & t.sym.name.s
return t.sym.owner.name.s & '.' & t.sym.name.s
case t.kind
of tyInt:
if not isIntLit(t) or prefer == preferExported:

Submodule csources deleted from b0bcf88e26

2
tests/clearmsg/mb.nim Normal file
View File

@@ -0,0 +1,2 @@
type
typ* = distinct string

3
tests/clearmsg/mc.nim Normal file
View File

@@ -0,0 +1,3 @@
type
typ* = distinct int

12
tests/clearmsg/ta.nim Normal file
View 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)