diff options
Diffstat (limited to 'tests/semantics.bad')
-rw-r--r-- | tests/semantics.bad | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/tests/semantics.bad b/tests/semantics.bad index 1bb2ceb..4acc8d5 100644 --- a/tests/semantics.bad +++ b/tests/semantics.bad | |||
@@ -1,22 +1,30 @@ | |||
1 | ; We can have static arrays and have indexed access. | ||
2 | let a = 1 | 1 | let a = 1 |
3 | let numbers: @int | 2 | let numbers: @int |
4 | set numbers[a] = 32 | 3 | set numbers[a] = 32 |
5 | set numbers[1] = numbers[0] | 4 | set numbers[1] = numbers[0] |
5 | |||
6 | let numbers_arr: int[0xff] | 6 | let numbers_arr: int[0xff] |
7 | set numbers_arr[0] = numbers[0] | 7 | set numbers_arr[0] = numbers[0] |
8 | |||
8 | let ptr_arr: @int[0xff] | 9 | let ptr_arr: @int[0xff] |
9 | set ptr_arr[0] = @numbers[0] | 10 | set ptr_arr[0] = @numbers[0] |
10 | 11 | ||
11 | ; TODO: test pointers/arrays on structs | 12 | struct vec { |
12 | 13 | a: int | |
13 | ; ; Arrays are syntactic sugar for pointers (@). | 14 | b: str |
14 | ; let ptr:@u32 = numbers | 15 | } |
15 | ; set ptr[10] = 33 | 16 | let b: @vec |
16 | 17 | set b[0].a = 1 | |
17 | ; ; Strings hold a .mem and .size fields with the number of bytes it holds. | 18 | |
18 | ; let hello: str = "hello world" | 19 | struct ptrs { |
19 | ; set c[1] = 'a' ; "hallo world" | 20 | a: @int |
21 | b: str[128] | ||
22 | c: vec[100] | ||
23 | } | ||
24 | let c: ptrs | ||
25 | set c.a[0] = 1 | ||
26 | set c.b[0] = "ho" | ||
27 | ; set c.c[0].a = 1 ; this doesn't work at the moment | ||
20 | 28 | ||
21 | ; ; fun foo(a: int): int { | 29 | ; ; fun foo(a: int): int { |
22 | ; ; 1 | 30 | ; ; 1 |