diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2020-03-20 01:28:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-20 09:28:03 +0100 |
commit | dd362ab4c0f574f781fb450b479d9dda8ced1e63 (patch) | |
tree | be5fc96f6c3ea2d221fbf951f74bf110ecb0bd52 /tests | |
parent | 55d3780b7bef2a171ee2a2e4ff856e5f91335b47 (diff) | |
download | Nim-dd362ab4c0f574f781fb450b479d9dda8ced1e63.tar.gz |
fix #13538 sigmatch errors are now sorted (#13701)
* fix #13538 sigmatch now sorted and has reliable order * re-enable tests that were disabled because of that bug * fix remaining tests and un-disable 2 other tests that were affected by this bug
Diffstat (limited to 'tests')
-rw-r--r-- | tests/concepts/t3330.nim | 34 | ||||
-rw-r--r-- | tests/concepts/texplain.nim | 28 | ||||
-rw-r--r-- | tests/errmsgs/tsigmatch.nim | 14 | ||||
-rw-r--r-- | tests/errmsgs/tsigmatch2.nim | 8 | ||||
-rw-r--r-- | tests/errmsgs/tunknown_named_parameter.nim | 10 |
5 files changed, 47 insertions, 47 deletions
diff --git a/tests/concepts/t3330.nim b/tests/concepts/t3330.nim index 067e81133..9de71f3ac 100644 --- a/tests/concepts/t3330.nim +++ b/tests/concepts/t3330.nim @@ -1,6 +1,5 @@ discard """ errormsg: "type mismatch: got <Bar[system.int]>" -disabled: "32bit" nimout: ''' t3330.nim(78, 4) Error: type mismatch: got <Bar[system.int]> but expected one of: @@ -9,33 +8,33 @@ proc test(foo: Foo[int]) required type for foo: Foo[int] but expression 'bar' is of type: Bar[system.int] t3330.nim(63, 8) Hint: Non-matching candidates for add(k, string, T) -proc add(x: var string; y: string) - first type mismatch at position: 1 - required type for x: var string - but expression 'k' is of type: Alias -proc add[T](x: var seq[T]; y: openArray[T]) +proc add(result: var string; x: float) first type mismatch at position: 1 - required type for x: var seq[T] + required type for result: var string but expression 'k' is of type: Alias -proc add(result: var string; x: float) +proc add(result: var string; x: int64) first type mismatch at position: 1 required type for result: var string but expression 'k' is of type: Alias -proc add[T](x: var seq[T]; y: T) +proc add(x: var string; y: char) first type mismatch at position: 1 - required type for x: var seq[T] + required type for x: var string but expression 'k' is of type: Alias proc add(x: var string; y: cstring) first type mismatch at position: 1 required type for x: var string but expression 'k' is of type: Alias -proc add(x: var string; y: char) +proc add(x: var string; y: string) first type mismatch at position: 1 required type for x: var string but expression 'k' is of type: Alias -proc add(result: var string; x: int64) +proc add[T](x: var seq[T]; y: T) first type mismatch at position: 1 - required type for result: var string + required type for x: var seq[T] + but expression 'k' is of type: Alias +proc add[T](x: var seq[T]; y: openArray[T]) + first type mismatch at position: 1 + required type for x: var seq[T] but expression 'k' is of type: Alias t3330.nim(63, 8) template/generic instantiation of `add` from here @@ -46,10 +45,11 @@ t3330.nim(71, 6) Foo: 'bar.x' cannot be assigned to expression: test(bar)''' """ -# Note: currently disabled on 32bit because the candidates are presented in -# different order on travis with `NIM_COMPILE_TO_CPP=false CPU=i386`; -# a possible fix would be to sort the candidates by proc signature or -# declaration location + + + + + diff --git a/tests/concepts/texplain.nim b/tests/concepts/texplain.nim index 2b19c8b4d..344b6d53f 100644 --- a/tests/concepts/texplain.nim +++ b/tests/concepts/texplain.nim @@ -37,20 +37,24 @@ texplain.nim(124, 5) ExplainedConcept: concept predicate failed texplain.nim(168, 20) Error: type mismatch: got <NonMatchingType> but expected one of: +proc e(i: int): int + first type mismatch at position: 1 + required type for i: int + but expression 'n' is of type: NonMatchingType proc e(o: ExplainedConcept): int first type mismatch at position: 1 required type for o: ExplainedConcept but expression 'n' is of type: NonMatchingType texplain.nim(168, 9) template/generic instantiation of `assert` from here texplain.nim(124, 5) ExplainedConcept: concept predicate failed -proc e(i: int): int - first type mismatch at position: 1 - required type for i: int - but expression 'n' is of type: NonMatchingType expression: e(n) texplain.nim(169, 20) Error: type mismatch: got <NonMatchingType> but expected one of: +proc r(i: string): int + first type mismatch at position: 1 + required type for i: string + but expression 'n' is of type: NonMatchingType proc r(o: RegularConcept): int first type mismatch at position: 1 required type for o: RegularConcept @@ -61,21 +65,17 @@ proc r[T](a: SomeNumber; b: T; c: auto) first type mismatch at position: 1 required type for a: SomeNumber but expression 'n' is of type: NonMatchingType -proc r(i: string): int - first type mismatch at position: 1 - required type for i: string - but expression 'n' is of type: NonMatchingType expression: r(n) texplain.nim(170, 20) Hint: Non-matching candidates for r(y) -proc r[T](a: SomeNumber; b: T; c: auto) - first type mismatch at position: 1 - required type for a: SomeNumber - but expression 'y' is of type: MatchingType proc r(i: string): int first type mismatch at position: 1 required type for i: string but expression 'y' is of type: MatchingType +proc r[T](a: SomeNumber; b: T; c: auto) + first type mismatch at position: 1 + required type for a: SomeNumber + but expression 'y' is of type: MatchingType texplain.nim(178, 2) Error: type mismatch: got <MatchingType> but expected one of: @@ -97,10 +97,10 @@ expression: f(y)''' errormsg: "type mismatch: got <MatchingType>" line: 178 - disabled: 32bit """ -# disabled on 32 bit, because the order of suggested alternatives ``r`` differs + + # proc r[T](a: SomeNumber; b: T; c: auto) # proc r(i: string): int # proc r(o: RegularConcept): int diff --git a/tests/errmsgs/tsigmatch.nim b/tests/errmsgs/tsigmatch.nim index 6b85d1408..414c972c9 100644 --- a/tests/errmsgs/tsigmatch.nim +++ b/tests/errmsgs/tsigmatch.nim @@ -3,13 +3,13 @@ discard """ nimout: ''' tsigmatch.nim(111, 4) Error: type mismatch: got <A, string> but expected one of: +proc f(a: A) + first type mismatch at position: 2 + extra argument given proc f(b: B) first type mismatch at position: 1 required type for b: B but expression 'A()' is of type: A -proc f(a: A) - first type mismatch at position: 2 - extra argument given expression: f(A(), "extra") tsigmatch.nim(125, 6) Error: type mismatch: got <tuple of (string, proc (){.gcsafe, locks: 0.})> @@ -61,14 +61,14 @@ proc f(a1: string; a2: varargs[string]; a3: float; a4: var string) expression: f("asdf", "1", "2", "3", "4", 2.3, "bad") tsigmatch.nim(164, 4) Error: type mismatch: got <string, a0: int literal(12)> but expected one of: -proc f(x: string; a0: var int) - first type mismatch at position: 2 - required type for a0: var int - but expression 'a0 = 12' is immutable, not 'var' proc f(x: string; a0: string) first type mismatch at position: 2 required type for a0: string but expression 'a0 = 12' is of type: int literal(12) +proc f(x: string; a0: var int) + first type mismatch at position: 2 + required type for a0: var int + but expression 'a0 = 12' is immutable, not 'var' expression: f(foo, a0 = 12) tsigmatch.nim(171, 7) Error: type mismatch: got <Mystring, string> diff --git a/tests/errmsgs/tsigmatch2.nim b/tests/errmsgs/tsigmatch2.nim index 4e95d3e1b..580743f3e 100644 --- a/tests/errmsgs/tsigmatch2.nim +++ b/tests/errmsgs/tsigmatch2.nim @@ -3,14 +3,14 @@ discard """ nimout: ''' tsigmatch2.nim(40, 14) Error: type mismatch: got <float64> but expected one of: -proc foo(i: Foo): string - first type mismatch at position: 1 - required type for i: Foo - but expression '1.2' is of type: float64 proc foo(args: varargs[string, myproc]): string first type mismatch at position: 1 required type for args: varargs[string] but expression '1.2' is of type: float64 +proc foo(i: Foo): string + first type mismatch at position: 1 + required type for i: Foo + but expression '1.2' is of type: float64 expression: foo(1.2) tsigmatch2.nim(46, 7) Error: type mismatch: got <int literal(1)> diff --git a/tests/errmsgs/tunknown_named_parameter.nim b/tests/errmsgs/tunknown_named_parameter.nim index e9be23068..b139310db 100644 --- a/tests/errmsgs/tunknown_named_parameter.nim +++ b/tests/errmsgs/tunknown_named_parameter.nim @@ -6,22 +6,22 @@ proc rsplit(s: string; sep: char; maxsplit: int = -1): seq[string] first type mismatch at position: 2 required type for sep: char but expression '{':'}' is of type: set[char] -proc rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string] - first type mismatch at position: 3 - unknown named parameter: maxsplits proc rsplit(s: string; sep: string; maxsplit: int = -1): seq[string] first type mismatch at position: 2 required type for sep: string but expression '{':'}' is of type: set[char] +proc rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string] + first type mismatch at position: 3 + unknown named parameter: maxsplits expression: rsplit("abc:def", {':'}, maxsplits = 1) ''' -disabled: 32bit """ + # bug #8043 -# disabled on 32 bit systems because the order of suggested proc alternatives is different. + import strutils "abc:def".rsplit({':'}, maxsplits = 1) |