diff options
author | Bad Diode <bd@badd10de.dev> | 2024-06-25 19:21:04 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-06-25 19:21:04 +0200 |
commit | e61947196d898232d40a63d5bbe40ec82b260c03 (patch) | |
tree | 878b580d6403143bcca43392c28a1ef525f2b02a /tests | |
parent | 90507290b8b6f9d15605c53480225f5a10a36ca7 (diff) | |
download | bdl-e61947196d898232d40a63d5bbe40ec82b260c03.tar.gz bdl-e61947196d898232d40a63d5bbe40ec82b260c03.zip |
Bugfixes for struct accessors
Diffstat (limited to 'tests')
-rw-r--r-- | tests/semantics.bad | 58 |
1 files changed, 41 insertions, 17 deletions
diff --git a/tests/semantics.bad b/tests/semantics.bad index d41e6e4..25d64fa 100644 --- a/tests/semantics.bad +++ b/tests/semantics.bad | |||
@@ -1,28 +1,52 @@ | |||
1 | struct vec { | 1 | struct vec { |
2 | x: f64 = 2.0 | 2 | x: f64 |
3 | y: f64 = 1.0 | 3 | y: f64 |
4 | bruh: { | 4 | } |
5 | id: int = 10 | 5 | |
6 | msg: str = "hello" | 6 | fun foo(): nil { |
7 | inner: { | 7 | struct vec { |
8 | x: int = 32 | 8 | z: f64 |
9 | y: str | ||
10 | } | ||
11 | } | 9 | } |
10 | let a: vec | ||
11 | set a.z = 1.0 | ||
12 | set a.x = 1.0 | ||
12 | } | 13 | } |
13 | 14 | ||
14 | let v: vec | 15 | ; struct vec { |
15 | set v.x = 1.0 | 16 | ; x: f64 = 2.0 |
16 | set v.bruh.id = 1 | 17 | ; y: f64 = 1.0 |
17 | set v.bruh.inner.y = "yo" | 18 | ; bruh: { |
19 | ; id: int = 10 | ||
20 | ; msg: str = "hello" | ||
21 | ; inner: { | ||
22 | ; x: int = 32 | ||
23 | ; y: str | ||
24 | ; } | ||
25 | ; } | ||
26 | ; } | ||
18 | 27 | ||
19 | ; let v = vec : { | 28 | ; let v: vec |
29 | ; set v.x = 1.0 | ||
30 | ; set v.bruh.id = 1 | ||
31 | ; set v.bruh.inner.y = "yo" | ||
32 | |||
33 | ; set v = vec : { | ||
20 | ; x = 1.0 | 34 | ; x = 1.0 |
21 | ; bruh = dud : { | 35 | ; y = 32.0 |
22 | ; id = 1 | 36 | ; ; bruh = dud : { |
23 | ; } | 37 | ; ; id = 1 |
38 | ; ; } | ||
24 | ; } | 39 | ; } |
25 | 40 | ||
41 | ; struct person { | ||
42 | ; name: str = "joe" | ||
43 | ; age: int = 18 * 2 | ||
44 | ; } | ||
45 | |||
46 | ; ; We can use the dot operator to access fields. | ||
47 | ; let player_a: person | ||
48 | ; set player_a.name = "alex" | ||
49 | |||
26 | ; struct vec { | 50 | ; struct vec { |
27 | ; x: f64 | 51 | ; x: f64 |
28 | ; y: f64 | 52 | ; y: f64 |