aboutsummaryrefslogtreecommitdiff
path: root/frontend/refmark.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/refmark.icl')
-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