diff options
-rw-r--r-- | frontend/type.icl | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/frontend/type.icl b/frontend/type.icl index 32c8c16..4be4892 100644 --- a/frontend/type.icl +++ b/frontend/type.icl @@ -2290,7 +2290,7 @@ typeProgram comps main_dcl_module_n fun_defs specials list_inferred_types icl_de ali_tail_strict_list_first_instance_indices=tail_strict_list_first_instance_indices, ali_instances_range={ ir_from = fun_env_size, ir_to = special_instances.si_next_array_member_index } } - # ts_var_heap = clear_var_heap ti_functions ts_var_heap + # ts_var_heap = clear_var_heap ti_functions ti_common_defs ts_var_heap = (not type_error, fun_defs, array_and_list_instances, ti_common_defs, ti_functions, ts_td_infos, {hp_var_heap = ts_var_heap, hp_expression_heap = ts_expr_heap, hp_type_heaps = ts_type_heaps, hp_generic_heap=ts_generic_heap }, predef_symbols, ts_error.ea_file, out) @@ -2848,16 +2848,26 @@ where CheckedType _ -> ts - clear_var_heap fun_types var_heap - = mapArraySt clear_module fun_types var_heap + clear_var_heap fun_types common_defs var_heap + # var_heap = mapArraySt clear_functions_in_module fun_types var_heap + = mapArraySt clear_members_in_module common_defs var_heap where - clear_module module_types var_heap + clear_functions_in_module module_types var_heap = mapArraySt clear_function module_types var_heap + clear_function {ft_type_ptr} var_heap | isNilPtr ft_type_ptr = var_heap = var_heap <:= (ft_type_ptr, VI_Empty) + clear_members_in_module common_def var_heap + = mapArraySt clear_member common_def.com_member_defs var_heap + + clear_member {me_type_ptr} var_heap + | isNilPtr me_type_ptr + = var_heap + = var_heap <:= (me_type_ptr, VI_Empty) + mapArraySt f a s :== map_a_st 0 a s where map_a_st i a st |