aboutsummaryrefslogtreecommitdiff
path: root/tests/resolve.ek
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-05-06 22:06:25 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-05-06 22:06:25 +0300
commit82cdf010329c4ac6827698689e7e39644fad07b6 (patch)
tree641c75ea227892a3d8e1a28dcd1001d6ec114600 /tests/resolve.ek
parentf98ec211bf60858b43b87ae125a5e13be9b41ee5 (diff)
downloadek-82cdf010329c4ac6827698689e7e39644fad07b6.tar.gz
ek-82cdf010329c4ac6827698689e7e39644fad07b6.zip
rename *.cu to *.ek
+ Name changes can be sort of difficult
Diffstat (limited to 'tests/resolve.ek')
-rw-r--r--tests/resolve.ek35
1 files changed, 35 insertions, 0 deletions
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);
+}