Files
mercury/tests/hard_coded/edit_seq_test.exp
Zoltan Somogyi ce9c9230c9 Enforce an invariant using types.
library/edit_seq.m:
    Change to uint the types of all the integers that cannot be negative.
    This happens to be all of them.

NEWS.md:
    Announce the change.

compiler/add_type.m:
compiler/det_check_switch.m:
compiler/error_spec.m:
compiler/style_checks.m:
compiler/typecheck_msgs.m:
    Conform to the changes above.

tests/hard_coded/change_hunk_test.{m,exp}:
tests/hard_coded/edit_seq_test.{m,exp}:
    Change the code that sets up the parameters for testing edit_seq.m
    to use uints, and expect uints in the output.
2026-01-01 17:23:24 +11:00

1101 lines
15 KiB
Plaintext

------------------
SeqA: []
SeqB: []
Params: replace
Edits: []
Diff:
------------------
SeqA: []
SeqB: []
Params: delete/insert
Edits: []
Diff:
------------------
SeqA: []
SeqB: [3]
Params: replace
Edits: [insert(1u, 3)]
Diff:
+ 3
------------------
SeqA: []
SeqB: [3]
Params: delete/insert
Edits: [insert(1u, 3)]
Diff:
+ 3
------------------
SeqA: []
SeqB: [42]
Params: replace
Edits: [insert(1u, 42)]
Diff:
+ 42
------------------
SeqA: []
SeqB: [42]
Params: delete/insert
Edits: [insert(1u, 42)]
Diff:
+ 42
------------------
SeqA: []
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: [insert(1u, 3), insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
+ 3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: []
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: [insert(1u, 3), insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
+ 3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: []
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 2), insert(1u, 3), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
+ 1
+ 2
+ 3
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: []
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 2), insert(1u, 3), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
+ 1
+ 2
+ 3
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: []
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 3), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
+ 1
+ 19
+ 2
+ 29
+ 3
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: []
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 3), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
+ 1
+ 19
+ 2
+ 29
+ 3
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: [3]
SeqB: []
Params: replace
Edits: [delete(1u)]
Diff:
- 3
------------------
SeqA: [3]
SeqB: []
Params: delete/insert
Edits: [delete(1u)]
Diff:
- 3
------------------
SeqA: [3]
SeqB: [3]
Params: replace
Edits: []
Diff:
3
------------------
SeqA: [3]
SeqB: [3]
Params: delete/insert
Edits: []
Diff:
3
------------------
SeqA: [3]
SeqB: [42]
Params: replace
Edits: [replace(1u, 42)]
Diff:
- 3
+ 42
------------------
SeqA: [3]
SeqB: [42]
Params: delete/insert
Edits: [delete(1u), insert(1u, 42)]
Diff:
- 3
+ 42
------------------
SeqA: [3]
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: [insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: [3]
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: [insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: [3]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 2), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
3
+ 1
+ 2
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: [3]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 2), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
3
+ 1
+ 2
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: [3]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
3
+ 1
+ 19
+ 2
+ 29
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: [3]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
3
+ 1
+ 19
+ 2
+ 29
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: [42]
SeqB: []
Params: replace
Edits: [delete(1u)]
Diff:
- 42
------------------
SeqA: [42]
SeqB: []
Params: delete/insert
Edits: [delete(1u)]
Diff:
- 42
------------------
SeqA: [42]
SeqB: [3]
Params: replace
Edits: [replace(1u, 3)]
Diff:
- 42
+ 3
------------------
SeqA: [42]
SeqB: [3]
Params: delete/insert
Edits: [delete(1u), insert(1u, 3)]
Diff:
- 42
+ 3
------------------
SeqA: [42]
SeqB: [42]
Params: replace
Edits: []
Diff:
42
------------------
SeqA: [42]
SeqB: [42]
Params: delete/insert
Edits: []
Diff:
42
------------------
SeqA: [42]
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: [replace(1u, 3), insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
- 42
+ 3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: [42]
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: [delete(1u), insert(1u, 3), insert(1u, 4), insert(1u, 5), insert(1u, 12), insert(1u, 13)]
Diff:
- 42
+ 3
+ 4
+ 5
+ 12
+ 13
------------------
SeqA: [42]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: [replace(1u, 1), insert(1u, 2), insert(1u, 3), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
- 42
+ 1
+ 2
+ 3
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: [42]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: [delete(1u), insert(1u, 1), insert(1u, 2), insert(1u, 3), insert(1u, 4), insert(1u, 11), insert(1u, 12), insert(1u, 13), insert(1u, 14)]
Diff:
- 42
+ 1
+ 2
+ 3
+ 4
+ 11
+ 12
+ 13
+ 14
------------------
SeqA: [42]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: [replace(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 3), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
- 42
+ 1
+ 19
+ 2
+ 29
+ 3
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: [42]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: [delete(1u), insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 3), insert(1u, 38), insert(1u, 39), insert(1u, 4), insert(1u, 12), insert(1u, 11), insert(1u, 13), insert(1u, 14)]
Diff:
- 42
+ 1
+ 19
+ 2
+ 29
+ 3
+ 38
+ 39
+ 4
+ 12
+ 11
+ 13
+ 14
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: []
Params: replace
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u)]
Diff:
- 3
- 4
- 5
- 12
- 13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: []
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u)]
Diff:
- 3
- 4
- 5
- 12
- 13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [3]
Params: replace
Edits: [delete(2u), delete(3u), delete(4u), delete(5u)]
Diff:
3
- 4
- 5
- 12
- 13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [3]
Params: delete/insert
Edits: [delete(2u), delete(3u), delete(4u), delete(5u)]
Diff:
3
- 4
- 5
- 12
- 13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [42]
Params: replace
Edits: [replace(1u, 42), delete(2u), delete(3u), delete(4u), delete(5u)]
Diff:
- 3
- 4
- 5
- 12
- 13
+ 42
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [42]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), insert(5u, 42)]
Diff:
- 3
- 4
- 5
- 12
- 13
+ 42
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: []
Diff:
3
4
5
12
13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: []
Diff:
3
4
5
12
13
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 2), replace(3u, 11), insert(5u, 14)]
Diff:
3
+ 1
+ 2
4
- 5
+ 11
12
13
+ 14
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 2), delete(3u), insert(3u, 11), insert(5u, 14)]
Diff:
3
+ 1
+ 2
4
- 5
+ 11
12
13
+ 14
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), replace(2u, 38), replace(3u, 39), insert(3u, 4), insert(4u, 11), insert(5u, 14)]
Diff:
3
- 4
- 5
+ 1
+ 19
+ 2
+ 29
+ 38
+ 39
+ 4
12
+ 11
13
+ 14
------------------
SeqA: [3, 4, 5, 12, 13]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: [insert(1u, 1), insert(1u, 19), insert(1u, 2), insert(1u, 29), insert(1u, 38), insert(1u, 39), delete(3u), insert(4u, 11), insert(5u, 14)]
Diff:
3
+ 1
+ 19
+ 2
+ 29
+ 38
+ 39
4
- 5
12
+ 11
13
+ 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: []
Params: replace
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u)]
Diff:
- 1
- 2
- 3
- 4
- 11
- 12
- 13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: []
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u)]
Diff:
- 1
- 2
- 3
- 4
- 11
- 12
- 13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [3]
Params: replace
Edits: [delete(1u), delete(2u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u)]
Diff:
- 1
- 2
3
- 4
- 11
- 12
- 13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [3]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u)]
Diff:
- 1
- 2
3
- 4
- 11
- 12
- 13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [42]
Params: replace
Edits: [replace(1u, 42), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u)]
Diff:
- 1
- 2
- 3
- 4
- 11
- 12
- 13
- 14
+ 42
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [42]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u), insert(8u, 42)]
Diff:
- 1
- 2
- 3
- 4
- 11
- 12
- 13
- 14
+ 42
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: [delete(1u), delete(2u), replace(5u, 5), delete(8u)]
Diff:
- 1
- 2
3
4
- 11
+ 5
12
13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(5u), insert(5u, 5), delete(8u)]
Diff:
- 1
- 2
3
4
- 11
+ 5
12
13
- 14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: []
Diff:
1
2
3
4
11
12
13
14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: []
Diff:
1
2
3
4
11
12
13
14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: [insert(1u, 19), insert(2u, 29), replace(4u, 38), replace(5u, 39), insert(5u, 4), insert(6u, 11)]
Diff:
1
+ 19
2
+ 29
3
- 4
- 11
+ 38
+ 39
+ 4
12
+ 11
13
14
------------------
SeqA: [1, 2, 3, 4, 11, 12, 13, 14]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: [insert(1u, 19), insert(2u, 29), insert(3u, 38), insert(3u, 39), delete(5u), insert(6u, 11)]
Diff:
1
+ 19
2
+ 29
3
+ 38
+ 39
4
- 11
12
+ 11
13
14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: []
Params: replace
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
- 3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: []
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
- 3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [3]
Params: replace
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [3]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [42]
Params: replace
Edits: [replace(1u, 42), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
- 3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
+ 42
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [42]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(5u), delete(6u), delete(7u), delete(8u), delete(9u), delete(10u), delete(11u), delete(12u), insert(12u, 42)]
Diff:
- 1
- 19
- 2
- 29
- 3
- 38
- 39
- 4
- 12
- 11
- 13
- 14
+ 42
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [3, 4, 5, 12, 13]
Params: replace
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(6u), delete(7u), insert(8u, 5), delete(10u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
3
- 38
- 39
4
+ 5
12
- 11
13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [3, 4, 5, 12, 13]
Params: delete/insert
Edits: [delete(1u), delete(2u), delete(3u), delete(4u), delete(6u), delete(7u), insert(8u, 5), delete(10u), delete(12u)]
Diff:
- 1
- 19
- 2
- 29
3
- 38
- 39
4
+ 5
12
- 11
13
- 14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: replace
Edits: [delete(2u), delete(4u), delete(6u), delete(7u), delete(9u), insert(10u, 12)]
Diff:
1
- 19
2
- 29
3
- 38
- 39
4
- 12
11
+ 12
13
14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [1, 2, 3, 4, 11, 12, 13, 14]
Params: delete/insert
Edits: [delete(2u), delete(4u), delete(6u), delete(7u), delete(9u), insert(10u, 12)]
Diff:
1
- 19
2
- 29
3
- 38
- 39
4
- 12
11
+ 12
13
14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: replace
Edits: []
Diff:
1
19
2
29
3
38
39
4
12
11
13
14
------------------
SeqA: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
SeqB: [1, 19, 2, 29, 3, 38, 39, 4, 12, 11, 13, 14]
Params: delete/insert
Edits: []
Diff:
1
19
2
29
3
38
39
4
12
11
13
14