From 82cdf010329c4ac6827698689e7e39644fad07b6 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 6 May 2023 22:06:25 +0300 Subject: rename *.cu to *.ek + Name changes can be sort of difficult --- tests/resolve.ek | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/resolve.ek (limited to 'tests/resolve.ek') diff --git a/tests/resolve.ek b/tests/resolve.ek new file mode 100644 index 0000000..1be0916 --- /dev/null +++ b/tests/resolve.ek @@ -0,0 +1,35 @@ +typedef A {} + +struct generic (T1 A, T2 A) { + a T1; + b T2; +} + +struct other_generic(T1 A) { + a T1; + b T1; +} + +/* 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 + a generic(i64, generic); + some_func(a); +} -- cgit v1.3