diff options
Diffstat (limited to 'tests/langerrors')
| -rw-r--r-- | tests/langerrors/array_designator_negative.zc | 4 | ||||
| -rw-r--r-- | tests/langerrors/array_inferred_no_init.zc | 4 | ||||
| -rw-r--r-- | tests/langerrors/array_initializer_excess.zc | 4 | ||||
| -rw-r--r-- | tests/langerrors/array_old_prefix.zc | 4 | ||||
| -rw-r--r-- | tests/langerrors/cfunc_name.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/const_index.zc | 4 | ||||
| -rw-r--r-- | tests/langerrors/extern_bigret.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/extern_struct.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/extern_type.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/fixed_nolen.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/fixed_push.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/fixed_to_dyn.zc | 9 | ||||
| -rw-r--r-- | tests/langerrors/gen_undeclared.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/o3_addr.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/o3_asm.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/o3_let.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/o3_param.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/parseword_noread.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/pk_addr.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/tagenum_args.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/tagenum_bind.zc | 2 | ||||
| -rw-r--r-- | tests/langerrors/tagenum_value.zc | 2 |
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; } |
