diff options
| author | 2026-10-14 09:39:39 +0000 | |
|---|---|---|
| committer | 2026-10-14 09:39:39 +0000 | |
| commit | 0ed3f650e50bc6fa7712e1b3e650ec9bc678ac91 (patch) | |
| tree | a34cc20ef06d80caf58a430a7f5b0b60494bbe35 /tests/langerrors | |
| parent | todo: tick struct constants and member typos; add follow-ups and the spec work (diff) | |
| parent | add c-style typedef and a built-in string alias (diff) | |
Merge branch 'worktree-agent-a3354164c07827b2e' into ccr-0054c02e-dfdvnd
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; } |
