aboutsummaryrefslogtreecommitdiff
path: root/frontend/unitype.icl
diff options
context:
space:
mode:
authorjohnvg2007-04-13 10:19:33 +0000
committerjohnvg2007-04-13 10:19:33 +0000
commit89bcff9652fe4421ce9672806effb2956a2480c3 (patch)
tree1ddd845331724259d3f54bb718baed290e9bff26 /frontend/unitype.icl
parentimplement {# and {! in array comprehensions that create a new array (diff)
implement newtype
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1672 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/unitype.icl')
-rw-r--r--frontend/unitype.icl16
1 files changed, 9 insertions, 7 deletions
diff --git a/frontend/unitype.icl b/frontend/unitype.icl
index d05677c..fc8cc6d 100644
--- a/frontend/unitype.icl
+++ b/frontend/unitype.icl
@@ -331,19 +331,19 @@ where
| changed
= (True, arg_type0 --> res_type, subst, ls)
= (False, type, subst, ls)
+ lift modules cons_vars type=:(TA cons_id cons_args) subst ls=:{ls_type_heaps}
+ # (_, type, ls_type_heaps) = tryToExpand type TA_Multi modules ls_type_heaps
+ = liftTypeApplication modules cons_vars type subst {ls & ls_type_heaps = ls_type_heaps}
+ lift modules cons_vars type=:(TAS cons_id cons_args _) subst ls=:{ls_type_heaps}
+ # (_, type, ls_type_heaps) = tryToExpand type TA_Multi modules ls_type_heaps
+ = liftTypeApplication modules cons_vars type subst {ls & ls_type_heaps = ls_type_heaps}
//AA..
lift modules cons_vars type=:(TArrow1 arg_type) subst ls
# (changed, arg_type, subst, ls) = lift modules cons_vars arg_type subst ls
| changed
= (True, TArrow1 arg_type, subst, ls)
= (False, type, subst, ls)
-//..AA
- lift modules cons_vars type=:(TA cons_id cons_args) subst ls=:{ls_type_heaps}
- # (_, type, ls_type_heaps) = tryToExpand type TA_Multi modules ls_type_heaps
- = liftTypeApplication modules cons_vars type subst {ls & ls_type_heaps = ls_type_heaps}
- lift modules cons_vars type=:(TAS cons_id cons_args _) subst ls=:{ls_type_heaps}
- # (_, type, ls_type_heaps) = tryToExpand type TA_Multi modules ls_type_heaps
- = liftTypeApplication modules cons_vars type subst {ls & ls_type_heaps = ls_type_heaps}
+//..AA
lift modules cons_vars type=:(TempCV temp_var :@: types) subst ls
# (changed, var_type, subst, ls) = liftTempTypeVariable modules cons_vars temp_var subst ls
(changed_types, types, subst, ls) = lift_list modules cons_vars types subst ls
@@ -1114,6 +1114,8 @@ where
= (False,NoPos)
find_var_position_in_case_guards (OverloadedListPatterns _ _ algebraic_patterns)
= find_var_position_in_algebraic_patterns algebraic_patterns
+ find_var_position_in_case_guards (NewTypePatterns _ algebraic_patterns)
+ = find_var_position_in_algebraic_patterns algebraic_patterns
find_var_position_in_case_guards (DynamicPatterns dynamic_patterns)
= find_var_position_in_dynamic_patterns dynamic_patterns
where