diff options
author | martinw | 2000-04-26 17:24:00 +0000 |
---|---|---|
committer | martinw | 2000-04-26 17:24:00 +0000 |
commit | 2c84ff5366e5cd899d7edbbba9e82d273817a5df (patch) | |
tree | d6a900a93417b8151844d3685f606e9b2ec49994 | |
parent | sorry for that! (diff) |
bugfix
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@130 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r-- | frontend/check.icl | 3 | ||||
-rw-r--r-- | frontend/comparedefimp.icl | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/frontend/check.icl b/frontend/check.icl index 886b2bd..38e8d88 100644 --- a/frontend/check.icl +++ b/frontend/check.icl @@ -2672,10 +2672,9 @@ checkModule {mod_type,mod_name,mod_imports,mod_imported_objects,mod_defs = cdefs heaps = { heaps & hp_var_heap = var_heap, hp_expression_heap = expr_heap, hp_type_heaps = {hp_type_heaps & th_vars = th_vars}} -/* RWS (dcl_modules, icl_mod, heaps, cs_error) = compareDefImp (cdefs.def_macros.ir_from, untransformed_macro_funs_defs) dcl_modules icl_mod heaps cs_error -*/ + = (cs_error.ea_ok, icl_mod, dcl_modules, groups, dcl_icl_conversions, heaps, cs_predef_symbols, cs_symbol_table, cs_error.ea_file) # icl_common = { icl_common & com_type_defs = e_info.ef_type_defs, com_selector_defs = e_info.ef_selector_defs, com_class_defs = e_info.ef_class_defs, com_cons_defs = e_info.ef_cons_defs, com_member_defs = e_info.ef_member_defs } diff --git a/frontend/comparedefimp.icl b/frontend/comparedefimp.icl index b01c74c..79a8ec1 100644 --- a/frontend/comparedefimp.icl +++ b/frontend/comparedefimp.icl @@ -367,6 +367,8 @@ instance t_corresponds (TypeDef TypeRhs) where = t_corresponds_TypeDef dclDef iclDef where t_corresponds_TypeDef dclDef iclDef tc_state +// | False--->("comparing:", dclDef, iclDef) +// = undef # tc_state = { tc_state & tc_visited_syn_types.[dclDef.td_index] = True } tc_state = init_attr_vars dclDef.td_attrs tc_state tc_state = init_attr_vars iclDef.td_attrs tc_state @@ -387,7 +389,8 @@ instance t_corresponds (TypeDef TypeRhs) where # (corresponds, tc_state) = t_corresponds dclDef.td_context iclDef.td_context tc_state | not corresponds = (corresponds, tc_state) - = t_corresponds dclDef.td_attribute iclDef.td_attribute tc_state + # attributes_correspond = (is_TA_Unique dclDef.td_attribute)==(is_TA_Unique iclDef.td_attribute) + = (attributes_correspond, tc_state) root_has_anonymous_attr (TA_Var lhs_attr_var) syn_type=:(SynType a_type=:{at_attribute=TA_Var rhs_attr_var}) = rhs_attr_var.av_info_ptr==lhs_attr_var.av_info_ptr @@ -400,6 +403,9 @@ instance t_corresponds (TypeDef TypeRhs) where isnt_abstract (AbstractType _) = False isnt_abstract _ = True + is_TA_Unique TA_Unique = True + is_TA_Unique _ = False + instance t_corresponds TypeContext where t_corresponds dclDef iclDef = t_corresponds dclDef.tc_class iclDef.tc_class |