summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/semcall.nim11
-rw-r--r--tests/reject/twrongtupleaccess.nim4
2 files changed, 9 insertions, 6 deletions
diff --git a/compiler/semcall.nim b/compiler/semcall.nim
index 643eef065..c7f4e4387 100644
--- a/compiler/semcall.nim
+++ b/compiler/semcall.nim
@@ -50,7 +50,8 @@ proc
   if sym == nil: return
   initCandidate(best, sym, initialBinding, symScope)
   initCandidate(alt, sym, initialBinding, symScope)
-
+  best.state = csNoMatch
+  
   while sym != nil:
     if sym.kind in filter:
       determineType(c, sym)
@@ -115,7 +116,8 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
 
   pickBest(f)
 
-  if result.state == csEmpty:
+  let overloadsState = result.state
+  if overloadsState != csMatch:
     if nfDelegate in n.flags:
       InternalAssert f.kind == nkIdent
       let calleeName = newStrNode(nkStrLit, f.ident.s)
@@ -127,7 +129,10 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
      
       pickBest(callOp)
 
-    if result.state == csEmpty:
+    if overloadsState == csEmpty and result.state == csEmpty:
+      LocalError(n.info, errUndeclaredIdentifier, considerAcc(f).s)
+      return
+    elif result.state != csMatch:
       if nfExprCall in n.flags:
         if c.inCompilesContext > 0 or gErrorCounter == 0:
           LocalError(n.info, errExprXCannotBeCalled,
diff --git a/tests/reject/twrongtupleaccess.nim b/tests/reject/twrongtupleaccess.nim
index bb09b108d..1a9ae64a2 100644
--- a/tests/reject/twrongtupleaccess.nim
+++ b/tests/reject/twrongtupleaccess.nim
@@ -1,12 +1,10 @@
 discard """
   file: "twrongtupleaccess.nim"
   line: 9
-  errormsg: "undeclared field: \'setBLAH\'"
+  errormsg: "undeclared identifier: \'setBLAH\'"
 """
 # Bugfix
 
 var v = (5.0, 10.0)
 v.setBLAH(10)
 
-
-