aboutsummaryrefslogtreecommitdiff
path: root/tests/structs.ek
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-04-09 18:23:33 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-04-09 18:23:33 +0300
commiteda6bcd42128a3e555c99a68f5b31c7e85518fe5 (patch)
treea83376bdf90b0e2f30297e5af24210af99f2b36b /tests/structs.ek
parent451111dc51df69580d04c9965f70531f50e3d509 (diff)
downloadek-eda6bcd42128a3e555c99a68f5b31c7e85518fe5.tar.gz
ek-eda6bcd42128a3e555c99a68f5b31c7e85518fe5.zip
improve struct handling
Diffstat (limited to 'tests/structs.ek')
-rw-r--r--tests/structs.ek32
1 files changed, 11 insertions, 21 deletions
diff --git a/tests/structs.ek b/tests/structs.ek
index 1444d24..22cce71 100644
--- a/tests/structs.ek
+++ b/tests/structs.ek
@@ -1,28 +1,18 @@
-typedef any {}
+typedef i27 {}
+typedef i9 {}
-struct basic_struct {
- i64 a;
- i64 b;
- i64 c;
-}
+typedef int_pair {
+ i27 a;
+ i27 b;
-struct complex_struct (any A, any B, any C) {
- A a;
- B b;
- C c;
+ sum(*int_pair self => i27)
+ {
+ return self*.a + self*.b;
+ }
}
main()
{
- /* infer types */
- const simple_named = {.a = 1, .b = 2, .c = 3} as basic_struct;
- const complex_named = {.a = 1, .b = 2, .c = 3} as complex_struct;
-
- /* force types */
- complex_struct![u32, u32, u32] force_named = {.a = 1, .b = 2, .c = 3};
- mut force_inferred_named = {.a = 1, .b = 2, .c = 3} as
- complex_struct![u32, u32, u32];
-
- /* types should be inferred */
- force_inferred_named = {.a = 2, .b = 3, .c = 4};
+ mut p = int_pair!{.a = 9, .b = 10};
+ i27 s = p.sum();
}