From 2023a7b2d9656f80b00de81453348c0a66f200f7 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 14 Aug 2024 20:44:26 +0300 Subject: test cleanup + Somewhat poor Git hygiene but I also fixed some bugs while I was at it. --- tests/arr.ek | 5 ----- tests/blocks.ek | 10 ---------- tests/callbacks.ek | 13 ++++++------- tests/d.ek | 35 ----------------------------------- tests/enums.ek | 11 ++++++++++- tests/if.ek | 1 + tests/if2.ek | 1 + tests/loop.ek | 1 + tests/pointer_literal.ek | 1 + tests/refderef.ek | 1 + tests/resolve.ek | 35 ----------------------------------- tests/rvalue.ek | 2 ++ tests/struct_call_ref.ek | 1 + tests/structs.ek | 1 + tests/trait_expand.ek | 2 ++ tests/trait_multiple_expand.ek | 8 ++++++++ tests/type_expand.ek | 11 ----------- tests/ufcs.ek | 1 + tests/unions.ek | 21 --------------------- tests/variadic.ek | 11 ++++++++++- 20 files changed, 46 insertions(+), 126 deletions(-) delete mode 100644 tests/arr.ek delete mode 100644 tests/blocks.ek delete mode 100644 tests/d.ek delete mode 100644 tests/resolve.ek delete mode 100644 tests/type_expand.ek delete mode 100644 tests/unions.ek (limited to 'tests') diff --git a/tests/arr.ek b/tests/arr.ek deleted file mode 100644 index c206615..0000000 --- a/tests/arr.ek +++ /dev/null @@ -1,5 +0,0 @@ -main() -{ - [20][20]*type![u32, u32] a = [20, => 20 ... 200 = 240, [200, 200]]; - a[20] = 200; -} diff --git a/tests/blocks.ek b/tests/blocks.ek deleted file mode 100644 index 3e598f5..0000000 --- a/tests/blocks.ek +++ /dev/null @@ -1,10 +0,0 @@ -main() -{ - mut a = switch 1 { - case 2: 2; - case 1: 1; - default: 20; 20; - }; - - mut c = {2 + 2; 4 + 4}; -} diff --git a/tests/callbacks.ek b/tests/callbacks.ek index 6e753e0..927c122 100644 --- a/tests/callbacks.ek +++ b/tests/callbacks.ek @@ -1,17 +1,16 @@ -do_stuff(^(u32) proc) -{ - proc(); -} +typedef i27 {} -other_proc(u32) +do_stuff(^(i27 => i27) proc => i27) { + return proc(20); } -other_proc() +other_proc(i27 a => i27) { + return a + 10; } main() { - do_stuff(other_proc as ^(u32)); + do_stuff(other_proc); } diff --git a/tests/d.ek b/tests/d.ek deleted file mode 100644 index 1ee313d..0000000 --- a/tests/d.ek +++ /dev/null @@ -1,35 +0,0 @@ -struct vec[any T] -{ - u27 size; - u27 cap; - *T buf; -} - -append(*vec v, T::typeof(v) e) -{ - if v.size == v.cap { - v.cap *= 3; - v.buf = realloc(v.buf, v.cap); - } - u27 a = { - 2 - }; - - { - here(); - } - - u27 a = { - .what = 200, - .wow = 200 - }; - - u27 a = switch (b) { - default: 20; - }; - - label: while a { - } - - v.buf[v.size] = e; -} diff --git a/tests/enums.ek b/tests/enums.ek index 234bbd1..ef7850c 100644 --- a/tests/enums.ek +++ b/tests/enums.ek @@ -1,9 +1,17 @@ +typedef i27 { + add(i27 a, i27 b => i27) { + return a + b; + } +}; + +typedef i9 {}; + enum A { a = 200, b } -enum B: u8 { +enum B: i9 { b, c } @@ -11,4 +19,5 @@ main() { const a = a::A; const b = b::B; + const c = a.add(b as i27); } diff --git a/tests/if.ek b/tests/if.ek index cd4341d..e3e08d7 100644 --- a/tests/if.ek +++ b/tests/if.ek @@ -1,5 +1,6 @@ typedef i9 {} typedef i27 {} +typedef ptr {} putchar(i9 c) { diff --git a/tests/if2.ek b/tests/if2.ek index c990ca5..0932155 100644 --- a/tests/if2.ek +++ b/tests/if2.ek @@ -1,6 +1,7 @@ typedef i9 {} typedef i27 {} typedef bool {} +typedef ptr {} putchar(i9 c) { diff --git a/tests/loop.ek b/tests/loop.ek index 265d09f..6ecf439 100644 --- a/tests/loop.ek +++ b/tests/loop.ek @@ -1,6 +1,7 @@ typedef i9 {} typedef i27 {} typedef bool {} +typedef ptr {} putchar(i9 c) { diff --git a/tests/pointer_literal.ek b/tests/pointer_literal.ek index dbb2bef..ade7988 100644 --- a/tests/pointer_literal.ek +++ b/tests/pointer_literal.ek @@ -1,5 +1,6 @@ typedef i9 {} typedef i27 {} +typedef ptr {} main() { diff --git a/tests/refderef.ek b/tests/refderef.ek index 1420d2c..ff020e7 100644 --- a/tests/refderef.ek +++ b/tests/refderef.ek @@ -1,5 +1,6 @@ typedef i9 {} typedef i27 {} +typedef ptr {} main() { diff --git a/tests/resolve.ek b/tests/resolve.ek deleted file mode 100644 index f417fde..0000000 --- a/tests/resolve.ek +++ /dev/null @@ -1,35 +0,0 @@ -typedef A {} - -struct generic (T1 A, T2 A) { - T1 a; - T2 b; -} - -struct other_generic(T1 A) { - T1 a; - T2 b; -} - -/* wow this works pretty good */ -//some_func(a A, b typeof a, c i64){1;} -//some_func(a A, b typeof a, c typeof b){2;} -//some_func(a A, b typeof a, c A){3;} -//some_func(a generic(u32, u32)) {5;} -//some_func(a other_generic){6;} -// TODO: partial templates shouldn't be allowed -//some_func(a generic(u32)){6;} -//some_func(a generic) {4;} -// illegal -// TODO: traits shouldn't be allowed in template instantiation -//some_func(a generic(A, A)){6;} -//some_func(generic(generic, generic)){1;} -//some_func(generic(generic, i64)){2;} -//some_func(generic(i64, generic)){3;} -//some_func(generic(i64, i64)){4;} -some_func(generic){5;} - -main(){ - // TODO: not fully qualified types in bodies should cause an error - [20]generic![i64, generic] a; - some_func(a); -} diff --git a/tests/rvalue.ek b/tests/rvalue.ek index c55f14b..4864fae 100644 --- a/tests/rvalue.ek +++ b/tests/rvalue.ek @@ -1,3 +1,5 @@ +typedef i27 {} + main() { /* should parse, but give an error about lvalue vs rvalue */ diff --git a/tests/struct_call_ref.ek b/tests/struct_call_ref.ek index a4d38bc..e1ec9d9 100644 --- a/tests/struct_call_ref.ek +++ b/tests/struct_call_ref.ek @@ -1,3 +1,4 @@ +typedef ptr {} typedef i27 {} typedef i9 {} diff --git a/tests/structs.ek b/tests/structs.ek index 3e64b94..13399b3 100644 --- a/tests/structs.ek +++ b/tests/structs.ek @@ -1,3 +1,4 @@ +typedef ptr {} typedef i27 {} typedef i9 {} diff --git a/tests/trait_expand.ek b/tests/trait_expand.ek index 8ee413e..c5f0f1c 100644 --- a/tests/trait_expand.ek +++ b/tests/trait_expand.ek @@ -1,3 +1,5 @@ +typedef ptr {} + define b[] { a![]; } diff --git a/tests/trait_multiple_expand.ek b/tests/trait_multiple_expand.ek index 285a6ea..04e2b82 100644 --- a/tests/trait_multiple_expand.ek +++ b/tests/trait_multiple_expand.ek @@ -1,3 +1,5 @@ +typedef ptr {} + define b[] { c![]; a![]; @@ -16,3 +18,9 @@ typedef d { b![]; c(*d d) {} } + +main() +{ + d d = d!{}; + d.c(); +} diff --git a/tests/type_expand.ek b/tests/type_expand.ek deleted file mode 100644 index e58d0a0..0000000 --- a/tests/type_expand.ek +++ /dev/null @@ -1,11 +0,0 @@ -define trait[] { - trait_func(*trait a, *trait b); -} - -typedef a[] { - trait![]; -} - -main() { - a![] some_var; -} diff --git a/tests/ufcs.ek b/tests/ufcs.ek index 85d241b..efa7701 100644 --- a/tests/ufcs.ek +++ b/tests/ufcs.ek @@ -1,3 +1,4 @@ +typedef ptr {} typedef i27 { add(*i27 self, i27 other => i27) { diff --git a/tests/unions.ek b/tests/unions.ek deleted file mode 100644 index b493d5a..0000000 --- a/tests/unions.ek +++ /dev/null @@ -1,21 +0,0 @@ -typedef any {} - -union basic_union { - u32 a; - i64 b; - f32 c; -} - -union complex_union(any A, any B, any C) { - A a; - B b; - C c; -} - -main() -{ - const simple_named = {.b = 1} as basic_union; - - // TODO: unions should be fully actualized - const complex_named = {.b = 1} as complex_union![u32, i64, f32]; -} diff --git a/tests/variadic.ek b/tests/variadic.ek index ae3c2c2..0e9120c 100644 --- a/tests/variadic.ek +++ b/tests/variadic.ek @@ -1,7 +1,16 @@ +typedef i27 {} + define macro(a, b, ... c) { + mut sum = 0; const for i : a, b, ... c { + sum += i; } + + sum; } -proc(u32 a, u32 b, ... c) {} +main() +{ + macro!(1, 2, 3, 4); +} -- cgit v1.3