aboutsummaryrefslogtreecommitdiff
path: root/frontend/refmark.icl
diff options
context:
space:
mode:
authorsjakie2000-08-02 12:11:01 +0000
committersjakie2000-08-02 12:11:01 +0000
commit061da1089d8a119d8e50626aba8f6e68d15fb240 (patch)
treee9aa4cfc72a5385125f2391ff41c2f3e4851df56 /frontend/refmark.icl
parentimproving error messages (diff)
comment MW3 removed; minor improvements
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@197 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/refmark.icl')
-rw-r--r--frontend/refmark.icl25
1 files changed, 14 insertions, 11 deletions
diff --git a/frontend/refmark.icl b/frontend/refmark.icl
index b11c1d0..d60192a 100644
--- a/frontend/refmark.icl
+++ b/frontend/refmark.icl
@@ -493,18 +493,21 @@ where
= foldSt initial_occurrence vars (subst, type_def_infos, var_heap, expr_heap)
where
initial_occurrence {fv_name,fv_info_ptr} (subst, type_def_infos, var_heap, expr_heap)
-// MW3 was: # (VI_Type {at_type,at_attribute}, var_heap) = readPtr fv_info_ptr var_heap
- # (VI_Type {at_type,at_attribute} _, var_heap) = readPtr fv_info_ptr var_heap
- = case at_type of
- TempV tv_number
- #! is_oberving = has_observing_type type_def_infos subst.[tv_number]
- -> (subst, type_def_infos, var_heap <:= (fv_info_ptr,
- VI_Occurrence { occ_ref_count = RC_Unused, occ_previous = [],
- occ_observing = is_oberving, occ_bind = OB_Empty }), expr_heap)
+ # (var_info, var_heap) = readPtr fv_info_ptr var_heap
+ = case var_info of
+ VI_Type {at_type,at_attribute} _
+ -> case at_type of
+ TempV tv_number
+ #! is_oberving = has_observing_type type_def_infos subst.[tv_number]
+ -> (subst, type_def_infos, var_heap <:= (fv_info_ptr,
+ VI_Occurrence { occ_ref_count = RC_Unused, occ_previous = [],
+ occ_observing = is_oberving, occ_bind = OB_Empty }), expr_heap)
+ _
+ -> (subst, type_def_infos, var_heap <:= (fv_info_ptr,
+ VI_Occurrence { occ_ref_count = RC_Unused, occ_previous = [],
+ occ_observing = False, occ_bind = OB_Empty }), expr_heap)
_
- -> (subst, type_def_infos, var_heap <:= (fv_info_ptr,
- VI_Occurrence { occ_ref_count = RC_Unused, occ_previous = [],
- occ_observing = False, occ_bind = OB_Empty }), expr_heap)
+ -> abort ("initial_occurrence (remark.icl)" ---> ((fv_name,fv_info_ptr) <<- var_info))
make_shared_vars_non_unique vars coercion_env var_heap expr_heap error