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: