summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/semcall.nim2
-rw-r--r--tests/concepts/texplain.nim84
2 files changed, 44 insertions, 42 deletions
diff --git a/compiler/semcall.nim b/compiler/semcall.nim
index a77fcad97..a51b9afe3 100644
--- a/compiler/semcall.nim
+++ b/compiler/semcall.nim
@@ -238,7 +238,6 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
 
       # leave the op head symbol empty,
       # we are going to try multiple variants
-      errors = nil
       n.sons[0..1] = [nil, n[1], f]
       orig.sons[0..1] = [nil, orig[1], f]
 
@@ -255,7 +254,6 @@ proc resolveOverloads(c: PContext, n, orig: PNode,
         tryOp "."
 
     elif nfDotSetter in n.flags and f.kind == nkIdent and n.len == 3:
-      errors = nil
       # we need to strip away the trailing '=' here:
       let calleeName = newIdentNode(getIdent(f.ident.s[0..f.ident.s.len-2]), n.info)
       let callOp = newIdentNode(getIdent".=", n.info)
diff --git a/tests/concepts/texplain.nim b/tests/concepts/texplain.nim
index 417d1e502..de8ddf890 100644
--- a/tests/concepts/texplain.nim
+++ b/tests/concepts/texplain.nim
@@ -1,62 +1,66 @@
 discard """
   cmd: "nim c --verbosity:0 --colors:off $file"
   nimout: '''
-texplain.nim(99, 10) Hint: Non-matching candidates for e(y)
+texplain.nim(103, 10) Hint: Non-matching candidates for e(y)
 proc e(i: int): int
 
-texplain.nim(102, 7) Hint: Non-matching candidates for e(10)
+texplain.nim(106, 7) Hint: Non-matching candidates for e(10)
 proc e(o: ExplainedConcept): int
-texplain.nim(65, 6) ExplainedConcept: undeclared field: 'foo'
-texplain.nim(65, 6) ExplainedConcept: undeclared field: '.'
-texplain.nim(65, 6) ExplainedConcept: expression '.' cannot be called
-texplain.nim(65, 5) ExplainedConcept: concept predicate failed
-texplain.nim(66, 6) ExplainedConcept: undeclared field: 'bar'
-texplain.nim(66, 6) ExplainedConcept: undeclared field: '.'
-texplain.nim(66, 6) ExplainedConcept: expression '.' cannot be called
-texplain.nim(65, 5) ExplainedConcept: concept predicate failed
-
-texplain.nim(105, 10) Hint: Non-matching candidates for e(10)
+texplain.nim(69, 6) ExplainedConcept: undeclared field: 'foo'
+texplain.nim(69, 6) ExplainedConcept: undeclared field: '.'
+texplain.nim(69, 6) ExplainedConcept: expression '.' cannot be called
+texplain.nim(69, 5) ExplainedConcept: concept predicate failed
+texplain.nim(70, 6) ExplainedConcept: undeclared field: 'bar'
+texplain.nim(70, 6) ExplainedConcept: undeclared field: '.'
+texplain.nim(70, 6) ExplainedConcept: expression '.' cannot be called
+texplain.nim(69, 5) ExplainedConcept: concept predicate failed
+
+texplain.nim(109, 10) Hint: Non-matching candidates for e(10)
 proc e(o: ExplainedConcept): int
-texplain.nim(65, 6) ExplainedConcept: undeclared field: 'foo'
-texplain.nim(65, 6) ExplainedConcept: undeclared field: '.'
-texplain.nim(65, 6) ExplainedConcept: expression '.' cannot be called
-texplain.nim(65, 5) ExplainedConcept: concept predicate failed
-texplain.nim(66, 6) ExplainedConcept: undeclared field: 'bar'
-texplain.nim(66, 6) ExplainedConcept: undeclared field: '.'
-texplain.nim(66, 6) ExplainedConcept: expression '.' cannot be called
-texplain.nim(65, 5) ExplainedConcept: concept predicate failed
-
-texplain.nim(109, 20) Error: type mismatch: got (NonMatchingType)
-but expected one of: 
+texplain.nim(69, 6) ExplainedConcept: undeclared field: 'foo'
+texplain.nim(69, 6) ExplainedConcept: undeclared field: '.'
+texplain.nim(69, 6) ExplainedConcept: expression '.' cannot be called
+texplain.nim(69, 5) ExplainedConcept: concept predicate failed
+texplain.nim(70, 6) ExplainedConcept: undeclared field: 'bar'
+texplain.nim(70, 6) ExplainedConcept: undeclared field: '.'
+texplain.nim(70, 6) ExplainedConcept: expression '.' cannot be called
+texplain.nim(69, 5) ExplainedConcept: concept predicate failed
+
+texplain.nim(113, 20) Error: type mismatch: got (NonMatchingType)
+but expected one of:
 proc e(o: ExplainedConcept): int
-texplain.nim(65, 5) ExplainedConcept: concept predicate failed
+texplain.nim(69, 5) ExplainedConcept: concept predicate failed
 proc e(i: int): int
 
-texplain.nim(110, 20) Error: type mismatch: got (NonMatchingType)
-but expected one of: 
+expression: e(n)
+texplain.nim(114, 20) Error: type mismatch: got (NonMatchingType)
+but expected one of:
 proc r(o: RegularConcept): int
-texplain.nim(69, 5) RegularConcept: concept predicate failed
+texplain.nim(73, 5) RegularConcept: concept predicate failed
 proc r[T](a: SomeNumber; b: T; c: auto)
 proc r(i: string): int
 
-texplain.nim(111, 20) Hint: Non-matching candidates for r(y)
+expression: r(n)
+texplain.nim(115, 20) Hint: Non-matching candidates for r(y)
 proc r[T](a: SomeNumber; b: T; c: auto)
 proc r(i: string): int
 
-texplain.nim(119, 2) Error: type mismatch: got (MatchingType)
-but expected one of: 
+texplain.nim(123, 2) Error: type mismatch: got (MatchingType)
+but expected one of:
 proc f(o: NestedConcept)
-texplain.nim(69, 6) RegularConcept: undeclared field: 'foo'
-texplain.nim(69, 6) RegularConcept: undeclared field: '.'
-texplain.nim(69, 6) RegularConcept: expression '.' cannot be called
-texplain.nim(69, 5) RegularConcept: concept predicate failed
-texplain.nim(70, 6) RegularConcept: undeclared field: 'bar'
-texplain.nim(70, 6) RegularConcept: undeclared field: '.'
-texplain.nim(70, 6) RegularConcept: expression '.' cannot be called
-texplain.nim(69, 5) RegularConcept: concept predicate failed
-texplain.nim(73, 5) NestedConcept: concept predicate failed
+texplain.nim(73, 6) RegularConcept: undeclared field: 'foo'
+texplain.nim(73, 6) RegularConcept: undeclared field: '.'
+texplain.nim(73, 6) RegularConcept: expression '.' cannot be called
+texplain.nim(73, 5) RegularConcept: concept predicate failed
+texplain.nim(74, 6) RegularConcept: undeclared field: 'bar'
+texplain.nim(74, 6) RegularConcept: undeclared field: '.'
+texplain.nim(74, 6) RegularConcept: expression '.' cannot be called
+texplain.nim(73, 5) RegularConcept: concept predicate failed
+texplain.nim(77, 5) NestedConcept: concept predicate failed
+
+expression: f(y)
 '''
-  line: 119
+  line: 123
   errormsg: "type mismatch: got (MatchingType)"
 """