diff options
Diffstat (limited to 'frontend/checkFunctionBodies.icl')
-rw-r--r-- | frontend/checkFunctionBodies.icl | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/frontend/checkFunctionBodies.icl b/frontend/checkFunctionBodies.icl index 4dfdaa7..6ad9d59 100644 --- a/frontend/checkFunctionBodies.icl +++ b/frontend/checkFunctionBodies.icl @@ -900,7 +900,7 @@ where # (let_expr, var_heap, expr_heap, error_admin) = merge_case let_expr var_heap expr_heap error_admin = (Let {lad & let_expr = let_expr}, var_heap, expr_heap, error_admin) merge_case (Case kees) var_heap expr_heap error_admin - # cases = map (make_case kees.case_expr) (split_patterns kees.case_guards) + # cases = map (make_case kees.case_expr kees.case_explicit) (split_patterns kees.case_guards) cases = init cases ++ [{last cases & case_default = kees.case_default}] [firstCase : otherCases] = [(Case kees, NoPos) \\ kees <- cases] ((Case {case_guards},_), var_heap, expr_heap, error_admin) = mergeCases firstCase otherCases var_heap expr_heap error_admin @@ -919,8 +919,8 @@ where split_patterns NoPattern = [NoPattern] - make_case :: Expression CasePatterns -> Case - make_case expr guard + make_case :: Expression Bool CasePatterns -> Case + make_case expr explicit guard = { case_expr = expr , case_guards = guard @@ -928,9 +928,7 @@ where , case_ident = No , case_info_ptr = nilPtr , case_default_pos= NoPos -// RWS ... - , case_explicit = False -// ... RWS + , case_explicit = explicit } merge_case expr var_heap expr_heap error_admin = (expr, var_heap, expr_heap, error_admin) |