Remove duplicate line number from 'invalid forward declaration' error (#11966)

This commit is contained in:
nc-x
2019-08-17 14:05:25 +05:30
committed by Andreas Rumpf
parent 15e681ce66
commit cf09ef47b8
3 changed files with 8 additions and 7 deletions

View File

@@ -72,8 +72,8 @@ proc searchForProcNew(c: PContext, scope: PScope, fn: PSym): PSym =
of paramsEqual:
if (sfExported notin result.flags) and (sfExported in fn.flags):
let message = ("public implementation '$1' has non-public " &
"forward declaration in $2") %
[getProcHeader(c.config, result), c.config$result.info]
"forward declaration at $2") %
[getProcHeader(c.config, result, getDeclarationPath = false), c.config$result.info]
localError(c.config, fn.info, message)
return
of paramsIncompatible:

View File

@@ -119,7 +119,7 @@ proc isIntLit*(t: PType): bool {.inline.} =
proc isFloatLit*(t: PType): bool {.inline.} =
result = t.kind == tyFloat and t.n != nil and t.n.kind == nkFloatLit
proc getProcHeader*(conf: ConfigRef; sym: PSym; prefer: TPreferedDesc = preferName): string =
proc getProcHeader*(conf: ConfigRef; sym: PSym; prefer: TPreferedDesc = preferName; getDeclarationPath = true): string =
assert sym != nil
result = sym.owner.name.s & '.' & sym.name.s
if sym.kind in routineKinds:
@@ -137,9 +137,10 @@ proc getProcHeader*(conf: ConfigRef; sym: PSym; prefer: TPreferedDesc = preferNa
add(result, ')')
if n.sons[0].typ != nil:
result.add(": " & typeToString(n.sons[0].typ, prefer))
result.add " [declared in "
result.add(conf$sym.info)
result.add "]"
if getDeclarationPath:
result.add " [declared in "
result.add(conf$sym.info)
result.add "]"
proc elemType*(t: PType): PType =
assert(t != nil)

View File

@@ -1,5 +1,5 @@
discard """
errormsg: "public implementation 'tmismatchedvisibility.foo(a: int) [declared in tmismatchedvisibility.nim(6, 6)]' has non-public forward declaration in "
errormsg: "public implementation 'tmismatchedvisibility.foo(a: int)' has non-public forward declaration at "
line: 8
"""