Merge pull request #2867 from Araq/fix-2584

Fixes #2584
This commit is contained in:
Andreas Rumpf
2015-06-07 10:51:35 +02:00
7 changed files with 17 additions and 10 deletions

View File

@@ -34,7 +34,9 @@ type
errNoneSpeedOrSizeExpectedButXFound, errGuiConsoleOrLibExpectedButXFound,
errUnknownOS, errUnknownCPU, errGenOutExpectedButXFound,
errArgsNeedRunOption, errInvalidMultipleAsgn, errColonOrEqualsExpected,
errExprExpected, errUndeclaredIdentifier, errUseQualifier, errTypeExpected,
errExprExpected, errUndeclaredIdentifier, errUndeclaredField,
errUndeclaredRoutine, errUseQualifier,
errTypeExpected,
errSystemNeeds, errExecutionOfProgramFailed, errNotOverloadable,
errInvalidArgForX, errStmtHasNoEffect, errXExpectsTypeOrValue,
errXExpectsArrayType, errIteratorCannotBeInstantiated, errExprXAmbiguous,
@@ -190,6 +192,8 @@ const
errColonOrEqualsExpected: "\':\' or \'=\' expected, but found \'$1\'",
errExprExpected: "expression expected, but found \'$1\'",
errUndeclaredIdentifier: "undeclared identifier: \'$1\'",
errUndeclaredField: "undeclared field: \'$1\'",
errUndeclaredRoutine: "attempting to call undeclared routine: \'$1\'",
errUseQualifier: "ambiguous identifier: \'$1\' -- use a qualifier",
errTypeExpected: "type expected",
errSystemNeeds: "system module needs \'$1\'",

View File

@@ -209,7 +209,10 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
pickBest(callOp)
if overloadsState == csEmpty and result.state == csEmpty:
localError(n.info, errUndeclaredIdentifier, considerQuotedIdent(f).s)
if nfDotField in n.flags and nfExplicitCall notin n.flags:
localError(n.info, errUndeclaredField, considerQuotedIdent(f).s)
else:
localError(n.info, errUndeclaredRoutine, considerQuotedIdent(f).s)
return
elif result.state != csMatch:
if nfExprCall in n.flags:

View File

@@ -1,6 +1,6 @@
discard """
line: 7
errormsg: "undeclared identifier: 'items'"
errormsg: "attempting to call undeclared routine: 'items'"
"""
type a = enum b,c,d

View File

@@ -1,7 +1,7 @@
discard """
file: "tissue710.nim"
line: 8
errorMsg: "undeclared identifier: '||'"
errorMsg: "attempting to call undeclared routine: '||'"
"""
var sum = 0
for x in 3..1000:

View File

@@ -1,7 +1,7 @@
discard """
file: "tnoop.nim"
line: 11
errormsg: "undeclared identifier: 'a'"
errormsg: "attempting to call undeclared routine: 'a'"
"""

View File

@@ -1,16 +1,16 @@
discard """
file: "topaque.nim"
line: 16
errormsg: "undeclared identifier: \'buffer\'"
errormsg: "undeclared field: \'buffer\'"
"""
# Test the new opaque types
import
import
mopaque
var
L: TLexer
L.filename = "ha"
L.line = 34
L.buffer[0] = '\0' #ERROR_MSG undeclared field: 'buffer'

View File

@@ -1,7 +1,7 @@
discard """
file: "twrongtupleaccess.nim"
line: 9
errormsg: "undeclared identifier: \'setBLAH\'"
errormsg: "attempting to call undeclared routine: \'setBLAH\'"
"""
# Bugfix