Commit a29a45f4 authored by John van Groningen's avatar John van Groningen
Browse files

commit bug fix from revision 1735 again:

keep case_explicit, instead of setting case_explicit to False for all
Case expressions (including cases not usings dynamics) in functions
using dynamics.
parent 07626bb2
...@@ -57,10 +57,7 @@ write_tcl_file main_dcl_module_n dcl_mods=:{[main_dcl_module_n] = main_dcl_modul ...@@ -57,10 +57,7 @@ write_tcl_file main_dcl_module_n dcl_mods=:{[main_dcl_module_n] = main_dcl_modul
= write_type_info directly_imported_dcl_modules tcl_file write_type_info_state = write_type_info directly_imported_dcl_modules tcl_file write_type_info_state
#! (tcl_file,write_type_info_state) #! (tcl_file,write_type_info_state)
= write_type_info (help_20_compiler { dcl_name.id_name\\ {dcl_name} <-: dcl_mods }) tcl_file write_type_info_state = write_type_info {# id_name \\ {dcl_name={id_name}} <-: dcl_mods } tcl_file write_type_info_state
with
help_20_compiler :: {#{#Char}} -> {#{#Char}}
help_20_compiler l = l
#! tcl_file #! tcl_file
= fwritei (size main_dcl_module.dcl_common.com_type_defs) tcl_file = fwritei (size main_dcl_module.dcl_common.com_type_defs) tcl_file
...@@ -326,7 +323,7 @@ instance convertDynamics Case where ...@@ -326,7 +323,7 @@ instance convertDynamics Case where
-> convertDynamicCase cinp kees ci -> convertDynamicCase cinp kees ci
_ _
# (case_guards, ci) = convertDynamics cinp case_guards ci # (case_guards, ci) = convertDynamics cinp case_guards ci
# kees = {kees & case_explicit=False, case_guards=case_guards} # kees & case_guards=case_guards
-> (kees, ci) -> (kees, ci)
instance convertDynamics CasePatterns where instance convertDynamics CasePatterns where
...@@ -709,7 +706,6 @@ dummy_case_ptr result_type ci=:{ci_expr_heap} ...@@ -709,7 +706,6 @@ dummy_case_ptr result_type ci=:{ci_expr_heap}
ct_cons_types = [[empty_attributed_type, empty_attributed_type]]}) ci_expr_heap ct_cons_types = [[empty_attributed_type, empty_attributed_type]]}) ci_expr_heap
= (expr_info_ptr, {ci & ci_expr_heap = ci_expr_heap}) = (expr_info_ptr, {ci & ci_expr_heap = ci_expr_heap})
let_ptr :: !Int !*ConversionState -> (ExprInfoPtr, !*ConversionState) let_ptr :: !Int !*ConversionState -> (ExprInfoPtr, !*ConversionState)
let_ptr nr_of_binds ci=:{ci_expr_heap} let_ptr nr_of_binds ci=:{ci_expr_heap}
= let_ptr2 (repeatn nr_of_binds empty_attributed_type) ci = let_ptr2 (repeatn nr_of_binds empty_attributed_type) ci
...@@ -721,7 +717,7 @@ typed_let_ptr type_id ci=:{ci_expr_heap} ...@@ -721,7 +717,7 @@ typed_let_ptr type_id ci=:{ci_expr_heap}
let_ptr2 :: [AType] !*ConversionState -> (ExprInfoPtr, !*ConversionState) let_ptr2 :: [AType] !*ConversionState -> (ExprInfoPtr, !*ConversionState)
let_ptr2 let_types ci=:{ci_expr_heap} let_ptr2 let_types ci=:{ci_expr_heap}
# (expr_info_ptr, ci_expr_heap) = newPtr (EI_LetType let_types) ci_expr_heap # (expr_info_ptr, ci_expr_heap) = newPtr (EI_LetType let_types) ci_expr_heap
= (expr_info_ptr, {ci & ci_expr_heap = ci_expr_heap}) = (expr_info_ptr, {ci & ci_expr_heap = ci_expr_heap})
toAType :: Type -> AType toAType :: Type -> AType
toAType type = { at_attribute = TA_Multi, at_type = type } toAType type = { at_attribute = TA_Multi, at_type = type }
...@@ -729,11 +725,6 @@ toAType type = { at_attribute = TA_Multi, at_type = type } ...@@ -729,11 +725,6 @@ toAType type = { at_attribute = TA_Multi, at_type = type }
empty_attributed_type :: AType empty_attributed_type :: AType
empty_attributed_type = toAType TE empty_attributed_type = toAType TE
instance <<< (Ptr a)
where
(<<<) file ptr = file <<< ptrToInt ptr
create_dynamic_and_selector_idents common_defs predefined_symbols create_dynamic_and_selector_idents common_defs predefined_symbols
| predefined_symbols.[PD_StdDynamic].pds_module == NoIndex | predefined_symbols.[PD_StdDynamic].pds_module == NoIndex
= ({ dr_type_ident = undef = ({ dr_type_ident = undef
...@@ -763,4 +754,3 @@ create_dynamic_and_selector_idents common_defs predefined_symbols ...@@ -763,4 +754,3 @@ create_dynamic_and_selector_idents common_defs predefined_symbols
, dr_dynamic_symbol = dynamic_defined_symbol , dr_dynamic_symbol = dynamic_defined_symbol
, dr_type_code_constructor_symb_ident = type_code_constructor_symb_ident , dr_type_code_constructor_symb_ident = type_code_constructor_symb_ident
}, predefined_symbols) }, predefined_symbols)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment