diff options
Diffstat (limited to 'tests/langerrors')
| -rw-r--r-- | tests/langerrors/typedef_generic_bare.zc | 6 | ||||
| -rw-r--r-- | tests/langerrors/typedef_local_redefine.zc | 8 | ||||
| -rw-r--r-- | tests/langerrors/typedef_redefine.zc | 6 | ||||
| -rw-r--r-- | tests/langerrors/typedef_scope.zc | 8 | ||||
| -rw-r--r-- | tests/langerrors/typedef_string_redefine.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/typedef_tag.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/typedef_unknown.zc | 5 | ||||
| -rw-r--r-- | tests/langerrors/typedef_variable_clash.zc | 8 | ||||
| -rw-r--r-- | tests/langerrors/typedef_void_variable.zc | 5 |
9 files changed, 56 insertions, 0 deletions
diff --git a/tests/langerrors/typedef_generic_bare.zc b/tests/langerrors/typedef_generic_bare.zc new file mode 100644 index 0000000..5f3e906 --- /dev/null +++ b/tests/langerrors/typedef_generic_bare.zc @@ -0,0 +1,6 @@ +namespace; + +// expect: expected '<', found 'plain' +struct box<T> { T item; }; +typedef box plain; +fn main() { return 0; } diff --git a/tests/langerrors/typedef_local_redefine.zc b/tests/langerrors/typedef_local_redefine.zc new file mode 100644 index 0000000..e51c32f --- /dev/null +++ b/tests/langerrors/typedef_local_redefine.zc @@ -0,0 +1,8 @@ +namespace; + +// expect: cell: already defined +fn main() { + typedef int cell; + typedef char* cell; + return 0; +} diff --git a/tests/langerrors/typedef_redefine.zc b/tests/langerrors/typedef_redefine.zc new file mode 100644 index 0000000..05085ec --- /dev/null +++ b/tests/langerrors/typedef_redefine.zc @@ -0,0 +1,6 @@ +namespace; + +// expect: num: already defined +typedef int num; +typedef char* num; +fn main() { return 0; } diff --git a/tests/langerrors/typedef_scope.zc b/tests/langerrors/typedef_scope.zc new file mode 100644 index 0000000..833e30e --- /dev/null +++ b/tests/langerrors/typedef_scope.zc @@ -0,0 +1,8 @@ +namespace; + +// expect: expected ';', found 'x' +fn main() { + { typedef int cell; cell a = 1; } + cell x = 2; + return 0; +} diff --git a/tests/langerrors/typedef_string_redefine.zc b/tests/langerrors/typedef_string_redefine.zc new file mode 100644 index 0000000..226a94e --- /dev/null +++ b/tests/langerrors/typedef_string_redefine.zc @@ -0,0 +1,5 @@ +namespace; + +// expect: string: already defined +typedef int string; +fn main() { return 0; } diff --git a/tests/langerrors/typedef_tag.zc b/tests/langerrors/typedef_tag.zc new file mode 100644 index 0000000..70ab491 --- /dev/null +++ b/tests/langerrors/typedef_tag.zc @@ -0,0 +1,5 @@ +namespace; + +// expect: a typedef names a type, which has no tag +typedef char*.u owned; +fn main() { return 0; } diff --git a/tests/langerrors/typedef_unknown.zc b/tests/langerrors/typedef_unknown.zc new file mode 100644 index 0000000..8076e86 --- /dev/null +++ b/tests/langerrors/typedef_unknown.zc @@ -0,0 +1,5 @@ +namespace; + +// expect: missing_t: isn't a type +typedef missing_t thing; +fn main() { return 0; } diff --git a/tests/langerrors/typedef_variable_clash.zc b/tests/langerrors/typedef_variable_clash.zc new file mode 100644 index 0000000..2c843f2 --- /dev/null +++ b/tests/langerrors/typedef_variable_clash.zc @@ -0,0 +1,8 @@ +namespace; + +// expect: count: already defined +fn main() { + int count = 1; + typedef int count; + return count; +} diff --git a/tests/langerrors/typedef_void_variable.zc b/tests/langerrors/typedef_void_variable.zc new file mode 100644 index 0000000..c5c7ced --- /dev/null +++ b/tests/langerrors/typedef_void_variable.zc @@ -0,0 +1,5 @@ +namespace; + +// expect: a variable can't be void +typedef void nothing; +fn main() { nothing x; return 0; } |
