aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsjakie2000-05-03 08:06:39 +0000
committersjakie2000-05-03 08:06:39 +0000
commitd3bd640d9e5a2d00420119cd0a15d857820b785f (patch)
treeab44a6df9b25b2196fcb9df1d56a865ad12590bd
parentfixed bug with type indices (diff)
bug fix
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@132 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--frontend/refmark.icl13
1 files changed, 7 insertions, 6 deletions
diff --git a/frontend/refmark.icl b/frontend/refmark.icl
index 5b803ae..6ecc2a3 100644
--- a/frontend/refmark.icl
+++ b/frontend/refmark.icl
@@ -289,7 +289,7 @@ where
ref_mark_of_patterns with_composite_pattern free_vars sel opt_pattern_var patterns case_default var_heap
# (local_lets, var_heap) = collectLocalLetVars free_vars var_heap
(with_pattern_bindings, pattern_depth, used_lets, var_heap)
- = foldSt (ref_mark_of_algebraic_pattern free_vars sel No local_lets) patterns (False, 0, [], var_heap)
+ = foldSt (ref_mark_of_algebraic_pattern free_vars sel opt_pattern_var local_lets) patterns (False, 0, [], var_heap)
= refMarkOfDefault (with_composite_pattern && with_pattern_bindings) pattern_depth free_vars sel case_default used_lets var_heap
ref_mark_of_algebraic_pattern free_vars sel opt_pattern_var local_lets {ap_vars,ap_expr}
@@ -299,7 +299,7 @@ where
used_pattern_vars = collectPatternsVariables ap_vars
var_heap = bind_optional_pattern_variable opt_pattern_var used_pattern_vars var_heap
var_heap = refMark [ [ fv \\ (fv,_) <- used_pattern_vars ] : free_vars ] sel ap_expr var_heap
- var_heap = restore_bindinding_of_pattern_variable opt_pattern_var used_pattern_vars var_heap
+ var_heap = restore_binding_of_pattern_variable opt_pattern_var used_pattern_vars var_heap
(used_lets, var_heap) = collectUsedLetVars local_lets (used_lets, var_heap)
= (with_pattern_bindings || not (isEmpty used_pattern_vars), pattern_depth, used_lets, var_heap)
@@ -311,12 +311,13 @@ where
bind_optional_pattern_variable _ used_pattern_vars var_heap
= var_heap
- restore_bindinding_of_pattern_variable _ [] var_heap
+ restore_binding_of_pattern_variable _ [] var_heap
= var_heap
- restore_bindinding_of_pattern_variable (Yes var_info_ptr) used_pattern_vars var_heap
- # (VI_Occurrence var_occ=:{occ_bind=OB_Pattern used_pattern_vars occ_bind}, var_heap) = readPtr var_info_ptr var_heap
+ restore_binding_of_pattern_variable (Yes var_info_ptr) used_pattern_vars var_heap
+ # (VI_Occurrence var_occ=:{occ_ref_count, occ_bind=OB_Pattern _ occ_bind}, var_heap) = readPtr var_info_ptr var_heap
= var_heap <:= (var_info_ptr, VI_Occurrence { var_occ & occ_bind = occ_bind})
- restore_bindinding_of_pattern_variable _ used_pattern_vars var_heap
+// ---> ("restore_binding_of_pattern_variable", occ_ref_count)
+ restore_binding_of_pattern_variable _ used_pattern_vars var_heap
= var_heap
refMarkOfCase free_vars sel expr (BasicPatterns type patterns) defaul var_heap