diff options
Diffstat (limited to 'frontend/trans.icl')
-rw-r--r-- | frontend/trans.icl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/frontend/trans.icl b/frontend/trans.icl index fa00840..30a743d 100644 --- a/frontend/trans.icl +++ b/frontend/trans.icl @@ -882,6 +882,12 @@ tryToFindInstance new_prods II_Empty fun_heap # (fun_def_ptr, fun_heap) = newPtr FI_Empty fun_heap = (cIsANewFunction, fun_def_ptr, II_Node new_prods fun_def_ptr II_Empty II_Empty, fun_heap) tryToFindInstance new_prods instances=:(II_Node prods fun_def_ptr left right) fun_heap + | size new_prods > size prods + # (is_new, new_fun_def_ptr, right, fun_heap) = tryToFindInstance new_prods right fun_heap + = (is_new, new_fun_def_ptr, II_Node prods fun_def_ptr left right, fun_heap) + | size new_prods < size prods + # (is_new, new_fun_def_ptr, left, fun_heap) = tryToFindInstance new_prods left fun_heap + = (is_new, new_fun_def_ptr, II_Node prods fun_def_ptr left right, fun_heap) # cmp = compareProducers new_prods prods | cmp == Equal = (cIsNotANewFunction, fun_def_ptr, instances, fun_heap) @@ -927,6 +933,8 @@ where = symb_ident1 =< symb_ident2 compare_constructor_arguments PR_Empty PR_Empty = Equal + compare_constructor_arguments PR_Unused PR_Unused + = Equal compare_constructor_arguments (PR_Constructor symb_ident1 _ _) (PR_Constructor symb_ident2 _ _) = symb_ident1 =< symb_ident2 @@ -2291,10 +2299,6 @@ add_let_binds free_vars rhss original_binds //@ transformGroups -:: ImportedConstructors :== [Global Index] -:: ImportedFunctions :== [Global Index] -:: ImportedTypes :== {#{# CheckedTypeDef}} - transformGroups :: !CleanupInfo !Int !Int !*{! Group} !*{#FunDef} !*{!.ConsClasses} !{# CommonDefs} !{# {# FunType} } !*ImportedTypes !ImportedConstructors !*TypeDefInfos !*VarHeap !*TypeHeaps !*ExpressionHeap !Bool -> (!*{! Group}, !*{#FunDef}, !*ImportedTypes, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, !*{!ConsClasses}) |