diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-30 02:08:45 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-30 02:08:45 +0200 |
| commit | 491e62664394a8689a3f8904fbe8dbc3dea05524 (patch) | |
| tree | 7142cf8d94fc6f9cf953d42d9c136b77f65d8034 /testsuite/fail_compilation | |
| parent | 08d9c4292ebba3e320c1dbaca4fa06c83f6fc7fb (diff) | |
| download | elna-491e62664394a8689a3f8904fbe8dbc3dea05524.tar.gz | |
Fix ICEs with recursive type declarations
Diffstat (limited to 'testsuite/fail_compilation')
11 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/fail_compilation/alias-cycle-behind-const.elna b/testsuite/fail_compilation/alias-cycle-behind-const.elna new file mode 100644 index 0000000..0c3b626 --- /dev/null +++ b/testsuite/fail_compilation/alias-cycle-behind-const.elna @@ -0,0 +1,4 @@ +type + A = B + B = const A (* @Error Type declaration forms a cycle: A -> B -> A *) +end. diff --git a/testsuite/fail_compilation/alias-cycle.elna b/testsuite/fail_compilation/alias-cycle.elna new file mode 100644 index 0000000..e6c822b --- /dev/null +++ b/testsuite/fail_compilation/alias-cycle.elna @@ -0,0 +1,4 @@ +type + A = B + B = A (* @Error Type declaration forms a cycle: A -> B -> A *) +end. diff --git a/testsuite/fail_compilation/alias-field-cycle.elna b/testsuite/fail_compilation/alias-field-cycle.elna new file mode 100644 index 0000000..f4a554a --- /dev/null +++ b/testsuite/fail_compilation/alias-field-cycle.elna @@ -0,0 +1,5 @@ +type + A = record (* @Error Type declaration forms a cycle: A -> A *) + field: A + end +end. diff --git a/testsuite/fail_compilation/array-cycle.elna b/testsuite/fail_compilation/array-cycle.elna new file mode 100644 index 0000000..617e23d --- /dev/null +++ b/testsuite/fail_compilation/array-cycle.elna @@ -0,0 +1,3 @@ +type + A = [2]A (* @Error Type declaration forms a cycle: A -> A *) +end. diff --git a/testsuite/fail_compilation/non_constant_array_dimension.elna b/testsuite/fail_compilation/non_constant_array_dimension.elna new file mode 100644 index 0000000..4ab0d34 --- /dev/null +++ b/testsuite/fail_compilation/non_constant_array_dimension.elna @@ -0,0 +1,9 @@ +proc f(len: Int) +var + array: [len]Int (* @Error Array dimensions for type 'Int' should be constant *) +begin + return + +begin + f(5) +end. diff --git a/testsuite/fail_compilation/non_constant_array_dimension.elna.s b/testsuite/fail_compilation/non_constant_array_dimension.elna.s new file mode 100644 index 0000000..8dc704d --- /dev/null +++ b/testsuite/fail_compilation/non_constant_array_dimension.elna.s @@ -0,0 +1 @@ + .file "non_constant_array_dimension.elna" diff --git a/testsuite/fail_compilation/pointer-cycle.elna b/testsuite/fail_compilation/pointer-cycle.elna new file mode 100644 index 0000000..f9ee649 --- /dev/null +++ b/testsuite/fail_compilation/pointer-cycle.elna @@ -0,0 +1,3 @@ +type + A = ^A (* @Error Type declaration forms a cycle: A -> A *) +end. diff --git a/testsuite/fail_compilation/procedure-cycle.elna b/testsuite/fail_compilation/procedure-cycle.elna new file mode 100644 index 0000000..aaed14c --- /dev/null +++ b/testsuite/fail_compilation/procedure-cycle.elna @@ -0,0 +1,3 @@ +type + A = proc(): A (* @Error Type declaration forms a cycle: A -> A *) +end. diff --git a/testsuite/fail_compilation/record-base-cycle.elna b/testsuite/fail_compilation/record-base-cycle.elna new file mode 100644 index 0000000..f3bcb20 --- /dev/null +++ b/testsuite/fail_compilation/record-base-cycle.elna @@ -0,0 +1,4 @@ +type + R = record(R) (* @Error Type declaration forms a cycle: R -> R *) + end +end. diff --git a/testsuite/fail_compilation/record-base-cycle.elna.s b/testsuite/fail_compilation/record-base-cycle.elna.s new file mode 100644 index 0000000..64f8722 --- /dev/null +++ b/testsuite/fail_compilation/record-base-cycle.elna.s @@ -0,0 +1 @@ + .file "record-base-cycle.elna" diff --git a/testsuite/fail_compilation/slice-cycle.elna b/testsuite/fail_compilation/slice-cycle.elna new file mode 100644 index 0000000..39eb7db --- /dev/null +++ b/testsuite/fail_compilation/slice-cycle.elna @@ -0,0 +1,3 @@ +type + A = []A (* @Error Type declaration forms a cycle: A -> A *) +end. |
