aboutsummaryrefslogtreecommitdiff
path: root/tests/langerrors
diff options
context:
space:
mode:
Diffstat (limited to 'tests/langerrors')
-rw-r--r--tests/langerrors/array_designator_negative.zc4
-rw-r--r--tests/langerrors/array_inferred_no_init.zc4
-rw-r--r--tests/langerrors/array_initializer_excess.zc4
-rw-r--r--tests/langerrors/array_old_prefix.zc4
-rw-r--r--tests/langerrors/cfunc_name.zc2
-rw-r--r--tests/langerrors/const_index.zc4
-rw-r--r--tests/langerrors/extern_bigret.zc2
-rw-r--r--tests/langerrors/extern_struct.zc2
-rw-r--r--tests/langerrors/extern_type.zc2
-rw-r--r--tests/langerrors/fixed_nolen.zc5
-rw-r--r--tests/langerrors/fixed_push.zc5
-rw-r--r--tests/langerrors/fixed_to_dyn.zc9
-rw-r--r--tests/langerrors/gen_undeclared.zc2
-rw-r--r--tests/langerrors/o3_addr.zc2
-rw-r--r--tests/langerrors/o3_asm.zc2
-rw-r--r--tests/langerrors/o3_let.zc2
-rw-r--r--tests/langerrors/o3_param.zc2
-rw-r--r--tests/langerrors/parseword_noread.zc2
-rw-r--r--tests/langerrors/pk_addr.zc2
-rw-r--r--tests/langerrors/tagenum_args.zc5
-rw-r--r--tests/langerrors/tagenum_bind.zc2
-rw-r--r--tests/langerrors/tagenum_value.zc2
22 files changed, 63 insertions, 7 deletions
diff --git a/tests/langerrors/array_designator_negative.zc b/tests/langerrors/array_designator_negative.zc
new file mode 100644
index 0000000..f779bc1
--- /dev/null
+++ b/tests/langerrors/array_designator_negative.zc
@@ -0,0 +1,4 @@
+namespace;
+
+// expect: a negative array designator
+fn main() { int[] values = { [-1] = 2 }; return 0; }
diff --git a/tests/langerrors/array_inferred_no_init.zc b/tests/langerrors/array_inferred_no_init.zc
new file mode 100644
index 0000000..b11f731
--- /dev/null
+++ b/tests/langerrors/array_inferred_no_init.zc
@@ -0,0 +1,4 @@
+namespace;
+
+// expect: T[] needs an initializer to determine its length
+fn main() { int[] values; return 0; }
diff --git a/tests/langerrors/array_initializer_excess.zc b/tests/langerrors/array_initializer_excess.zc
new file mode 100644
index 0000000..f727bf8
--- /dev/null
+++ b/tests/langerrors/array_initializer_excess.zc
@@ -0,0 +1,4 @@
+namespace;
+
+// expect: too many elements in array initializer
+fn main() { int[2] values = {1,2,3}; return 0; }
diff --git a/tests/langerrors/array_old_prefix.zc b/tests/langerrors/array_old_prefix.zc
new file mode 100644
index 0000000..c427d3d
--- /dev/null
+++ b/tests/langerrors/array_old_prefix.zc
@@ -0,0 +1,4 @@
+namespace;
+
+// expect: array types are postfix: T[N], T[] or T[?]
+fn main() { [3]int old; return 0; }
diff --git a/tests/langerrors/cfunc_name.zc b/tests/langerrors/cfunc_name.zc
index 0b0b0d4..1c0ef52 100644
--- a/tests/langerrors/cfunc_name.zc
+++ b/tests/langerrors/cfunc_name.zc
@@ -1,2 +1,4 @@
+namespace;
+
// expect: isn't a function
fn main() { let p = cfunc(nothere); return 0; }
diff --git a/tests/langerrors/const_index.zc b/tests/langerrors/const_index.zc
index 03e927b..ea99986 100644
--- a/tests/langerrors/const_index.zc
+++ b/tests/langerrors/const_index.zc
@@ -1,2 +1,4 @@
+namespace;
+
// expect: the index is out of range for this array
-fn main() { [4]int a; a[4] = 1; return 0; }
+fn main() { int[4] a; a[4] = 1; return 0; }
diff --git a/tests/langerrors/extern_bigret.zc b/tests/langerrors/extern_bigret.zc
index 37de467..38c87c8 100644
--- a/tests/langerrors/extern_bigret.zc
+++ b/tests/langerrors/extern_bigret.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: a native call can return at most 7 words
struct Big { int a; int b; int c; int d; int e; int f; int g; int h; }
extern struct Big mkbig(long a);
diff --git a/tests/langerrors/extern_struct.zc b/tests/langerrors/extern_struct.zc
index 52d9ecc..9830766 100644
--- a/tests/langerrors/extern_struct.zc
+++ b/tests/langerrors/extern_struct.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: isn't a zc struct
extern int stat2(struct stat s);
fn main() { return 0; }
diff --git a/tests/langerrors/extern_type.zc b/tests/langerrors/extern_type.zc
index c0655ba..a42a57e 100644
--- a/tests/langerrors/extern_type.zc
+++ b/tests/langerrors/extern_type.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: isn't a c type extern knows
extern widget frob(int);
fn main() { return 0; }
diff --git a/tests/langerrors/fixed_nolen.zc b/tests/langerrors/fixed_nolen.zc
index b79c31e..0c53e27 100644
--- a/tests/langerrors/fixed_nolen.zc
+++ b/tests/langerrors/fixed_nolen.zc
@@ -1,2 +1,5 @@
+namespace;
+include rt;
+
// expect: a fixed array needs its length
-fn main() { fixed []int f = new(fixed []int); free(d*f); return 0; }
+fn main() { fixed int[?] f = rt.new(fixed int[?]); rt.free(d*f); return 0; }
diff --git a/tests/langerrors/fixed_push.zc b/tests/langerrors/fixed_push.zc
index a19bcb4..faba741 100644
--- a/tests/langerrors/fixed_push.zc
+++ b/tests/langerrors/fixed_push.zc
@@ -1,2 +1,5 @@
+namespace;
+include rt;
+
// expect: a fixed array can't grow or shrink
-fn main() { fixed []int f = new(fixed []int, 3); push(f, 1); free(d*f); return 0; }
+fn main() { fixed int[?] f = rt.new(fixed int[?], 3); push(f, 1); rt.free(d*f); return 0; }
diff --git a/tests/langerrors/fixed_to_dyn.zc b/tests/langerrors/fixed_to_dyn.zc
index 483f62f..8afbef6 100644
--- a/tests/langerrors/fixed_to_dyn.zc
+++ b/tests/langerrors/fixed_to_dyn.zc
@@ -1,4 +1,7 @@
-// expect: type error: argument: expected []int, got fixed []int
+namespace;
+include rt;
+
+// expect: type error: argument: expected int[?], got fixed int[?]
typecheck on;
-int take([]int.m g) { return len(g); }
-fn main() { fixed []int f = new(fixed []int, 3); take(f); free(d*f); return 0; }
+int take(int[?].m g) { return len(g); }
+fn main() { fixed int[?] f = rt.new(fixed int[?], 3); take(f); rt.free(d*f); return 0; }
diff --git a/tests/langerrors/gen_undeclared.zc b/tests/langerrors/gen_undeclared.zc
index ef85a7b..dad1566 100644
--- a/tests/langerrors/gen_undeclared.zc
+++ b/tests/langerrors/gen_undeclared.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: T: isn't a type
T first(int* l) { return l[0]; }
fn main() { return 0; }
diff --git a/tests/langerrors/o3_addr.zc b/tests/langerrors/o3_addr.zc
index 9ff029f..1028c6f 100644
--- a/tests/langerrors/o3_addr.zc
+++ b/tests/langerrors/o3_addr.zc
@@ -1,2 +1,4 @@
+namespace;
+
// expect: an o3 variable has no address
fn main() { o3 int z = 2; int* q = &z; return *q; }
diff --git a/tests/langerrors/o3_asm.zc b/tests/langerrors/o3_asm.zc
index c8afb44..ebc223c 100644
--- a/tests/langerrors/o3_asm.zc
+++ b/tests/langerrors/o3_asm.zc
@@ -1,2 +1,4 @@
+namespace;
+
// expect: asm can't reach an o3 variable
fn main() { o3 int zz = 2; asm { zz @ _ } return 0; }
diff --git a/tests/langerrors/o3_let.zc b/tests/langerrors/o3_let.zc
index d2aff9a..2afa952 100644
--- a/tests/langerrors/o3_let.zc
+++ b/tests/langerrors/o3_let.zc
@@ -1,2 +1,4 @@
+namespace;
+
// expect: o3 variables need a type
fn main() { o3 { let x = 1; x++; } return 0; }
diff --git a/tests/langerrors/o3_param.zc b/tests/langerrors/o3_param.zc
index 5694720..84cb6c2 100644
--- a/tests/langerrors/o3_param.zc
+++ b/tests/langerrors/o3_param.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: o3 parameters need a type
o3 int f(x) { return x; }
fn main() { return f(1); }
diff --git a/tests/langerrors/parseword_noread.zc b/tests/langerrors/parseword_noread.zc
index e7c5b1a..8de985c 100644
--- a/tests/langerrors/parseword_noread.zc
+++ b/tests/langerrors/parseword_noread.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: a parse word has to read its own name
// a parse word that never calls next() would be called on the same token forever
immediate fn pw() { return 0; }
diff --git a/tests/langerrors/pk_addr.zc b/tests/langerrors/pk_addr.zc
index 17ada12..52863d7 100644
--- a/tests/langerrors/pk_addr.zc
+++ b/tests/langerrors/pk_addr.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: has no address
fn main() {
u8 buf[8];
diff --git a/tests/langerrors/tagenum_args.zc b/tests/langerrors/tagenum_args.zc
index 4d1850f..23fcf2b 100644
--- a/tests/langerrors/tagenum_args.zc
+++ b/tests/langerrors/tagenum_args.zc
@@ -1,3 +1,6 @@
+namespace;
+include rt;
+
// expect: wrong number of arguments
enum shape { circle { int r; }, dot };
-fn main() { shape* s = shape.circle(1, 2); free(d*s); return 0; }
+fn main() { shape* s = shape.circle(1, 2); rt.free(d*s); return 0; }
diff --git a/tests/langerrors/tagenum_bind.zc b/tests/langerrors/tagenum_bind.zc
index 9fcb9bf..8a5b0e0 100644
--- a/tests/langerrors/tagenum_bind.zc
+++ b/tests/langerrors/tagenum_bind.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: a case binds every field of its member
enum shape { circle { int r; }, dot };
fn f(shape* s) {
diff --git a/tests/langerrors/tagenum_value.zc b/tests/langerrors/tagenum_value.zc
index dbd807e..be66bdc 100644
--- a/tests/langerrors/tagenum_value.zc
+++ b/tests/langerrors/tagenum_value.zc
@@ -1,3 +1,5 @@
+namespace;
+
// expect: a tagged enum's members take no explicit values
enum shape { circle { int r; }, dot = 5 };
fn main() { return 0; }