diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-05-06 22:06:25 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-05-06 22:06:25 +0300 |
| commit | 82cdf010329c4ac6827698689e7e39644fad07b6 (patch) | |
| tree | 641c75ea227892a3d8e1a28dcd1001d6ec114600 /tests/resolve.ek | |
| parent | f98ec211bf60858b43b87ae125a5e13be9b41ee5 (diff) | |
| download | ek-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.ek | 35 |
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); +} |
