diff options
author | johnvg | 2007-04-13 10:19:33 +0000 |
---|---|---|
committer | johnvg | 2007-04-13 10:19:33 +0000 |
commit | 89bcff9652fe4421ce9672806effb2956a2480c3 (patch) | |
tree | 1ddd845331724259d3f54bb718baed290e9bff26 /frontend/unitype.icl | |
parent | implement {# 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.icl | 16 |
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 |