aboutsummaryrefslogtreecommitdiff
path: root/testsuite/fail_compilation
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-10-15 14:46:38 +0200
committerEugen Wissner <belka@caraus.de>2026-10-15 14:46:38 +0200
commit56a1244380133ab400f98d2da15353e080ffb360 (patch)
treef4e0aef02c8d356fc2c67bfdb2f1c490858c24cf /testsuite/fail_compilation
parentde6ecae0f072bb32be95382c536a517eabe4b1f1 (diff)
downloadelna-56a1244380133ab400f98d2da15353e080ffb360.tar.gz
Restrict index types to Int and WordHEADcpp
Diffstat (limited to 'testsuite/fail_compilation')
-rw-r--r--testsuite/fail_compilation/array_dimension_size.elna8
-rw-r--r--testsuite/fail_compilation/array_dimension_type.elna10
-rw-r--r--testsuite/fail_compilation/array_index_type.elna11
-rw-r--r--testsuite/fail_compilation/constant_enum_to_int.elna2
4 files changed, 30 insertions, 1 deletions
diff --git a/testsuite/fail_compilation/array_dimension_size.elna b/testsuite/fail_compilation/array_dimension_size.elna
new file mode 100644
index 0000000..bd5bb7c
--- /dev/null
+++ b/testsuite/fail_compilation/array_dimension_size.elna
@@ -0,0 +1,8 @@
+module
+
+proc f()
+var
+ a: [0]Int (* @Error Array dimension must be greater than zero *)
+return
+
+end.
diff --git a/testsuite/fail_compilation/array_dimension_type.elna b/testsuite/fail_compilation/array_dimension_type.elna
new file mode 100644
index 0000000..e4720c2
--- /dev/null
+++ b/testsuite/fail_compilation/array_dimension_type.elna
@@ -0,0 +1,10 @@
+module
+
+type Color = (red, green, blue)
+
+proc f()
+var
+ a: [Color.red]Int (* @Error Array dimension must be of type 'Word' or 'Int', but got 'Color' *)
+return
+
+end.
diff --git a/testsuite/fail_compilation/array_index_type.elna b/testsuite/fail_compilation/array_index_type.elna
new file mode 100644
index 0000000..e3081df
--- /dev/null
+++ b/testsuite/fail_compilation/array_index_type.elna
@@ -0,0 +1,11 @@
+module
+
+proc f(i: Word8)
+var
+ a: [10]Int
+ x: Int
+begin
+ x := a[i] (* @Error Array index must be of type 'Word' or 'Int', but got 'Word8' *)
+return
+
+end.
diff --git a/testsuite/fail_compilation/constant_enum_to_int.elna b/testsuite/fail_compilation/constant_enum_to_int.elna
index 194109b..60bfeae 100644
--- a/testsuite/fail_compilation/constant_enum_to_int.elna
+++ b/testsuite/fail_compilation/constant_enum_to_int.elna
@@ -7,5 +7,5 @@ var
y: []Int
begin
- y := x[Enumeration.one to Enumeration.two] (* @Error Array index must be an integral type, but got 'Enumeration' *)
+ y := x[Enumeration.one to Enumeration.two] (* @Error Array index must be of type 'Word' or 'Int', but got 'Enumeration' *)
end.