aboutsummaryrefslogtreecommitdiff
path: root/frontend/unitype.icl
diff options
context:
space:
mode:
authorjohnvg2011-04-19 11:37:59 +0000
committerjohnvg2011-04-19 11:37:59 +0000
commitd0ae22e4b794606ef99dc124b8b40a93cc24f9ba (patch)
treee880d814aef67ca23e44808a4b30f054606dbc13 /frontend/unitype.icl
parentadd instance declarations with a qualified class name (diff)
use unique array select and update instead of replace
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1930 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/unitype.icl')
-rw-r--r--frontend/unitype.icl14
1 files changed, 6 insertions, 8 deletions
diff --git a/frontend/unitype.icl b/frontend/unitype.icl
index c830086..9114daf 100644
--- a/frontend/unitype.icl
+++ b/frontend/unitype.icl
@@ -164,7 +164,6 @@ where
= combine_coercion_trees group_index attrs partition merged_tree coer_offered coer_demanded
combine_coercion_trees group_index [ ] partition merged_tree coer_offered coer_demanded
= (merged_tree, coer_demanded)
-
rebuild_tree :: !Index !AttributePartition !*CoercionTree !*CoercionTree -> *CoercionTree
rebuild_tree group_index partition (CT_Node attr left right) tree
@@ -669,13 +668,13 @@ coerceAttributes off_attr dem_attr _ coercions
newInequality :: !Int !Int !*Coercions -> *Coercions
newInequality off_attr dem_attr coercions=:{coer_demanded, coer_offered}
- # (dem_coercions, coer_demanded) = replace coer_demanded off_attr CT_Empty
+ # (dem_coercions, coer_demanded) = coer_demanded![off_attr]
(succ, dem_coercions) = insert dem_attr dem_coercions
- coer_demanded = { coer_demanded & [off_attr] = dem_coercions }
+ coer_demanded = {coer_demanded & [off_attr] = dem_coercions}
| succ
- # (off_coercions, coer_offered) = replace coer_offered dem_attr CT_Empty
+ # (off_coercions, coer_offered) = coer_offered![dem_attr]
(succ, off_coercions) = insert off_attr off_coercions
- coer_offered = { coer_offered & [dem_attr] = off_coercions }
+ coer_offered = {coer_offered & [dem_attr] = off_coercions}
= {coer_demanded = coer_demanded, coer_offered = coer_offered}
= {coer_demanded = coer_demanded, coer_offered = coer_offered}
where
@@ -716,9 +715,8 @@ makeUnique :: !Int !*Coercions -> *Coercions
makeUnique attr {coer_demanded, coer_offered}
# (off_coercions, coer_offered) = replace coer_offered attr CT_Empty
coer_demanded = { coer_demanded & [attr] = CT_Unique }
- = make_unique off_coercions {coer_offered = coer_offered, coer_demanded = coer_demanded}// ---> ("makeUnique :", attr)
+ = make_unique off_coercions {coer_offered = coer_offered, coer_demanded = coer_demanded}
where
- // JVG added type:
make_unique :: !CoercionTree !*Coercions -> *Coercions;
make_unique (CT_Node this_attr ct_less ct_greater) coercions
# coercions = makeUnique this_attr coercions
@@ -989,7 +987,7 @@ copyCoercions coercions=:{coer_demanded, coer_offered}
= ({coercions & coer_demanded = coer_demanded, coer_offered = coer_offered}, {coercions & coer_demanded = coer_demanded_copy, coer_offered = coer_offered_copy})
where
copy_coercion_trees trees
- = arrayAndElementsCopy CT_Empty copy_coercion_tree trees
+ = arrayAndElementsCopy copy_coercion_tree trees
copy_coercion_tree (CT_Node attr left right)
# (copy_left, left) = copy_coercion_tree left