From 6b890e35e78c6cde75947593efd4b7776caf5b0b Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Thu, 7 Jun 2018 10:33:25 +0000 Subject: [PATCH] copy constructors in AlgConses when copying an algebraic type extension from the definition to the implementation module --- frontend/check.icl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/check.icl b/frontend/check.icl index 19dcdad6..f771688f 100644 --- a/frontend/check.icl +++ b/frontend/check.icl @@ -1438,9 +1438,12 @@ where cop_td_indexes = [decl_index : cop_td_indexes] = (new_type_defs, new_class_defs, new_cons_defs, new_selector_defs, new_member_defs, new_generic_defs, (cop_td_indexes, cop_cd_indexes, cop_gd_indexes), conversion_table, icl_sizes, icl_decl_symbols, cs) where - add_type_def td=:{td_pos, td_rhs = UncheckedAlgConses type_ext_ident conses} new_type_defs new_cons_defs new_selector_defs conversion_table icl_sizes icl_decl_symbols cs + add_type_def td=:{td_pos, td_rhs = UncheckedAlgConses type_ext_ident conses} new_type_defs new_cons_defs new_selector_defs conversion_table icl_sizes icl_decl_symbols cs # (conses,(new_cons_defs,conversion_table,icl_sizes,icl_decl_symbols,cs)) = copy_and_redirect_cons_symbols com_cons_defs td_pos conses (new_cons_defs,conversion_table,icl_sizes,icl_decl_symbols,cs) = ([{ td & td_rhs = UncheckedAlgConses type_ext_ident conses} : new_type_defs],new_cons_defs,new_selector_defs,conversion_table,icl_sizes,icl_decl_symbols,cs) + add_type_def td=:{td_pos, td_rhs = AlgConses conses type_ext_ident} new_type_defs new_cons_defs new_selector_defs conversion_table icl_sizes icl_decl_symbols cs + # (conses,(new_cons_defs,conversion_table,icl_sizes,icl_decl_symbols,cs)) = copy_and_redirect_cons_symbols com_cons_defs td_pos conses (new_cons_defs,conversion_table,icl_sizes,icl_decl_symbols,cs) + = ([{ td & td_rhs = AlgConses conses type_ext_ident} : new_type_defs],new_cons_defs,new_selector_defs,conversion_table,icl_sizes,icl_decl_symbols,cs) add_type_def td new_type_defs new_cons_defs new_selector_defs conversion_table icl_sizes icl_decl_symbols cs = ([td : new_type_defs],new_cons_defs,new_selector_defs,conversion_table,icl_sizes,icl_decl_symbols,cs) add_dcl_definition _ _ result = result -- GitLab