diff options
-rw-r--r-- | compiler/semcall.nim | 2 | ||||
-rw-r--r-- | tests/concepts/texplain.nim | 84 |
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)" """ |