aboutsummaryrefslogtreecommitdiff
path: root/frontend/overloading.icl
diff options
context:
space:
mode:
authorsjakie2002-02-26 14:38:49 +0000
committersjakie2002-02-26 14:38:49 +0000
commitbc4a0073da8049ab1c7f7096bc42514b466bfd34 (patch)
treecc40a801eaa2534768dbb9517aeac38d58e335ae /frontend/overloading.icl
parentDisable debugging traces (diff)
Bug fix: Dictionary arguments were not passed correctly to other dictionaries
(b260202.icl) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1030 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/overloading.icl')
-rw-r--r--frontend/overloading.icl12
1 files changed, 12 insertions, 0 deletions
diff --git a/frontend/overloading.icl b/frontend/overloading.icl
index 3acdf79..a320597 100644
--- a/frontend/overloading.icl
+++ b/frontend/overloading.icl
@@ -1746,6 +1746,18 @@ where
varToFreeVar {var_name, var_info_ptr} count
= {fv_def_level = NotALevel, fv_name = var_name, fv_info_ptr = var_info_ptr, fv_count = count}
+ adjustClassExpression symb_name (Let this_let=:{let_strict_binds, let_lazy_binds, let_expr }) ui
+ # (let_strict_binds, ui) = adjust_let_binds symb_name let_strict_binds ui
+ (let_lazy_binds, ui) = adjust_let_binds symb_name let_lazy_binds ui
+ (let_expr, ui) = adjustClassExpression symb_name let_expr ui
+ = (Let { this_let & let_strict_binds = let_strict_binds, let_lazy_binds = let_lazy_binds, let_expr = let_expr }, ui)
+ where
+ adjust_let_binds symb_name let_binds ui
+ = mapSt (adjust_let_bind symb_name) let_binds ui
+
+ adjust_let_bind symb_name let_bind=:{lb_src} ui
+ # (lb_src, ui) = adjustClassExpression symb_name lb_src ui
+ = ({let_bind & lb_src = lb_src}, ui)
adjustClassExpression symb_name expr ui
= (expr, ui)