aboutsummaryrefslogtreecommitdiff
path: root/frontend/overloading.icl
diff options
context:
space:
mode:
authoralimarin2001-07-19 09:09:30 +0000
committeralimarin2001-07-19 09:09:30 +0000
commit6f59e1c9fb72a901c13f51d1e28b321ac1ff66a1 (patch)
treefa62504d1af91f0a5c0fb5d864ec8231776772d3 /frontend/overloading.icl
parentremove bug with numbering strict alias node defs (diff)
Added "curried" arrow types (->) and ((->) a)
Fixed some bugs in generics git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@559 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/overloading.icl')
-rw-r--r--frontend/overloading.icl6
1 files changed, 6 insertions, 0 deletions
diff --git a/frontend/overloading.icl b/frontend/overloading.icl
index 30b948e..c50e9af 100644
--- a/frontend/overloading.icl
+++ b/frontend/overloading.icl
@@ -531,6 +531,12 @@ where
| diff >= 0
= match defs (TV tv, types) (TA { type_cons & type_arity = diff } (take diff cons_args), drop diff cons_args) type_heaps
= (False, type_heaps)
+//AA..
+ match defs TArrow TArrow type_heaps
+ = (True, type_heaps)
+ match defs (TArrow1 t1) (TArrow1 t2) type_heaps
+ = match defs t1 t2 type_heaps
+//..AA
match defs (TB tb1) (TB tb2) type_heaps
= (tb1 == tb2, type_heaps)
/* match defs type (TB (BT_String array_type)) type_heaps