aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-06-25 19:21:04 +0200
committerBad Diode <bd@badd10de.dev>2024-06-25 19:21:04 +0200
commite61947196d898232d40a63d5bbe40ec82b260c03 (patch)
tree878b580d6403143bcca43392c28a1ef525f2b02a /tests
parent90507290b8b6f9d15605c53480225f5a10a36ca7 (diff)
downloadbdl-e61947196d898232d40a63d5bbe40ec82b260c03.tar.gz
bdl-e61947196d898232d40a63d5bbe40ec82b260c03.zip
Bugfixes for struct accessors
Diffstat (limited to 'tests')
-rw-r--r--tests/semantics.bad58
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 @@
1struct vec { 1struct 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" 6fun 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
14let v: vec 15; struct vec {
15set v.x = 1.0 16; x: f64 = 2.0
16set v.bruh.id = 1 17; y: f64 = 1.0
17set 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