diff options
author | johnvg | 2011-04-19 11:37:59 +0000 |
---|---|---|
committer | johnvg | 2011-04-19 11:37:59 +0000 |
commit | d0ae22e4b794606ef99dc124b8b40a93cc24f9ba (patch) | |
tree | e880d814aef67ca23e44808a4b30f054606dbc13 /frontend/unitype.icl | |
parent | add 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.icl | 14 |
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 |