aboutsummaryrefslogtreecommitdiff
path: root/frontend/convertcases.icl
diff options
context:
space:
mode:
authorronny2002-10-14 23:04:58 +0000
committerronny2002-10-14 23:04:58 +0000
commite2d995038cba1d5b3ec41c6d2fb5804e7b7cefeb (patch)
treec97b3bfd682f8adc1dbc22f545c7c7abe92a3536 /frontend/convertcases.icl
parentuse transform_trivial for 0-ary funs (diff)
bug fix convert root cases
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1233 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/convertcases.icl')
-rw-r--r--frontend/convertcases.icl11
1 files changed, 3 insertions, 8 deletions
diff --git a/frontend/convertcases.icl b/frontend/convertcases.icl
index 7a89582..0c6fbd7 100644
--- a/frontend/convertcases.icl
+++ b/frontend/convertcases.icl
@@ -1256,7 +1256,7 @@ instance convertRootCases Expression where
_
-> case case_expr of
(Var var)
- | not case_explicit || (case ci.ci_case_level of
+ | not case_explicit && (case ci.ci_case_level of
CaseLevelAfterGuardRoot -> False
_ -> True)
# (varInfo, cs_var_heap) = readPtr var.var_info_ptr cs.cs_var_heap
@@ -1645,10 +1645,7 @@ convertNonRootCase ci=:{ci_bound_vars, ci_group_index, ci_common_defs} kees=:{ c
| is_degenerate
# (EI_CaseTypeAndSplits case_type _, cs_expr_heap) = readPtr case_info_ptr cs.cs_expr_heap
cs = { cs & cs_expr_heap = cs_expr_heap }
-
-// test ...
- (defoult, cs) = convertRootCases ci defoult cs
-// ... test
+ (defoult, cs) = convertRootCases {ci & ci_case_level=CaseLevelRoot} defoult cs
(act_vars, form_vars, local_vars, caseExpr, old_fv_info_ptr_values,cs_var_heap)
= copy_case_expr ci_bound_vars (defoult) cs.cs_var_heap
@@ -1685,9 +1682,7 @@ convertNonRootCase ci=:{ci_bound_vars, ci_group_index, ci_common_defs} kees=:{ c
(case_expr, cs) = convertCases ci case_expr cs
-// test ...
- (caseExpr, cs) = convertRootCases ci (Case kees) cs
-// ... test
+ (caseExpr, cs) = convertRootCases {ci & ci_case_level=CaseLevelRoot} (Case kees) cs
(act_vars, form_vars, local_vars, caseExpr, old_fv_info_ptr_values,cs_var_heap)
= copy_case_expr ci_bound_vars caseExpr cs.cs_var_heap