roc/crates/compiler/test_mono/generated
Ayaz Hafiz 1460f60ab1
Unify material recursion variables behind aliases and opaques
Even if there are no changes to alias arguments, and no new variables were
introduced, we may still need to unify the "actual types" of the alias or opaque!

The unification is not necessary from a types perspective (and in fact, we may want
to disable it for `roc check` later on), but it is necessary for the monomorphizer,
which expects identical types to be reflected in the same variable.

As a concrete example, consider the unification of two opaques

  P := [Zero, Succ P]

  (@P (Succ n)) ~ (@P (Succ o))

`P` has no arguments, and unification of the surface of `P` introduces nothing new.
But if we do not unify the types of `n` and `o`, which are recursion variables, they
will remain disjoint! Currently, the implication of this is that they will be seen
to have separate recursive memory layouts in the monomorphizer - which is no good
for our compilation model.

Closes #3653
2022-07-29 11:03:47 -04:00
..
alias_variable.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
alias_variable_and_return_it.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
branch_store_variable.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
call_function_in_empty_list.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
call_function_in_empty_list_unbound.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
choose_i128_layout.txt update mono tests 2022-07-08 15:39:23 +02:00
choose_u64_layout.txt update mono tests 2022-07-08 15:39:23 +02:00
choose_u128_layout.txt update mono tests 2022-07-08 15:39:23 +02:00
closure_in_list.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
dict.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
empty_list_of_function_type.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_nested_record_string.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_record_one_field_string.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_record_two_field_strings.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_string.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_tag_one_field_string.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
encode_derived_tag_two_payloads_string.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
factorial.txt update mono tests 2022-07-08 15:39:23 +02:00
fst.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
guard_pattern_true.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
if_guard_bind_variable_false.txt Rename multimorphic tests to capture niche 2022-07-03 10:37:34 -04:00
if_multi_branch.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
instantiate_annotated_as_recursive_alias_multiple_polymorphic_expr.txt Update tests 2022-07-18 17:55:02 -04:00
instantiate_annotated_as_recursive_alias_polymorphic_expr.txt Update tests 2022-07-18 17:55:02 -04:00
instantiate_annotated_as_recursive_alias_toplevel.txt Update tests 2022-07-18 17:55:02 -04:00
ir_assignment.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
ir_int_add.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
ir_int_literal.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
ir_plus.txt update mono tests 2022-07-08 15:39:23 +02:00
ir_round.txt update mono tests 2022-07-08 15:39:23 +02:00
ir_two_defs.txt update mono tests 2022-07-08 15:39:23 +02:00
ir_when_idiv.txt update mono tests 2022-07-08 16:19:12 +02:00
ir_when_just.txt update mono tests 2022-07-08 15:39:23 +02:00
ir_when_maybe.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
ir_when_record.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
ir_when_these.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
is_nil.txt Update mono tests 2022-07-25 11:44:48 -04:00
issue_2535_polymorphic_fields_referenced_in_list.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
issue_2583_specialize_errors_behind_unified_branches.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
issue_2725_alias_polymorphic_lambda.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
issue_2810.txt Update tests 2022-07-18 17:55:02 -04:00
issue_2811.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
issue_3560_nested_tag_constructor_is_newtype.txt Reflect newtypes in path instructions 2022-07-21 18:17:57 -04:00
lambda_capture_niche_u8_vs_u64.txt update mono tests 2022-07-08 15:39:23 +02:00
lambda_capture_niches_have_captured_function_in_closure.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
lambda_capture_niches_with_non_capturing_function.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
lambda_capture_niches_with_other_lambda_capture.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
lambda_set_niche_same_layout_different_constructor.txt Add dedup niche test golden 2022-07-03 10:37:40 -04:00
let_with_record_pattern.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
let_with_record_pattern_list.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
let_x_in_x.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
let_x_in_x_indirect.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
list_append.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_append_closure.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_cannot_update_inplace.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_get.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_len.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_map_closure_borrows.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_map_closure_owns.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_pass_to_function.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
list_sort_asc.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
mk_pair_of.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
monomorphized_applied_tag.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
monomorphized_floats.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
monomorphized_ints.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
monomorphized_list.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
monomorphized_tag.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
monomorphized_tag_with_aliased_args.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
nested_closure.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
nested_pattern_match.txt update mono tests 2022-07-08 15:39:23 +02:00
one_element_tag.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
opaque_assign_to_symbol.txt Update tests 2022-07-18 17:55:02 -04:00
optional_when.txt update mono tests 2022-07-08 15:39:23 +02:00
peano.txt Update tests 2022-07-18 17:55:02 -04:00
peano1.txt Update mono tests 2022-07-25 11:44:48 -04:00
peano2.txt Update mono tests 2022-07-25 11:44:48 -04:00
quicksort_help.txt update mono tests 2022-07-08 15:39:23 +02:00
quicksort_swap.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
record_optional_field_function_no_use_default.txt update mono tests 2022-07-08 15:39:23 +02:00
record_optional_field_function_use_default.txt update mono tests 2022-07-08 15:39:23 +02:00
record_optional_field_let_no_use_default.txt update mono tests 2022-07-08 15:39:23 +02:00
record_optional_field_let_use_default.txt update mono tests 2022-07-08 15:39:23 +02:00
recursive_call_capturing_function.txt update mono tests 2022-07-08 16:19:12 +02:00
rigids.txt Unify material recursion variables behind aliases and opaques 2022-07-29 11:03:47 -04:00
simple_if.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
specialize_ability_call.txt Update tests 2022-07-18 17:55:02 -04:00
specialize_closures.txt update mono tests 2022-07-08 15:39:23 +02:00
specialize_lowlevel.txt update mono tests 2022-07-08 15:39:23 +02:00
tail_call_elimination.txt update mono tests 2022-07-08 15:39:23 +02:00
tail_call_with_different_layout.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
tail_call_with_same_layout_different_lambda_sets.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
when_joinpoint.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
when_nested_maybe.txt update mono tests 2022-07-08 15:39:23 +02:00
when_on_record.txt update mono tests 2022-07-08 15:39:23 +02:00
when_on_result.txt Remove tag_name from Expr::Tag 2022-07-03 16:48:51 -04:00
when_on_two_values.txt update mono tests 2022-07-08 15:39:23 +02:00