roc/crates/compiler/test_mono/generated
Ayaz Hafiz 247913dc20
Record all nested recursive structures an entry in the layout cache contains
If an entry in the layout cache contains recursive structures, the entry
is not reusable if the recursive structure is currently in the "seen"
set. The example elucidated in the source code is as follows:

Suppose we are constructing the layout of

```
[A, B (List r)] as r
```

and we have already constructed and cached the layout of `List r`, which would
be

```
List (Recursive [Unit, List RecursivePointer])
```

If we use the cached entry of `List r`, we would end up with the layout

```
Recursive [Unit, (List (Recursive [Unit, List RecursivePointer]))]
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cached layout for `List r`
```

but this is not correct; the canonical layout of `[A, B (List r)] as r` is

```
Recursive [Unit, (List RecursivePointer)]
```

However, the current implementation only preserves this behavior for
structures that contain one recursive structure under them. In practice,
there can be structures that contain multiple recursive structures under
them, and we must be sure to record all those structures in the
layout-cache.
2023-03-30 18:15:35 -05: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 Rip out polymorphic expression compilation 2023-01-21 12:37:09 -06:00
anonymous_closure_in_polymorphic_expression_issue_4717.txt update mono 2023-03-13 18:03:05 -07:00
anonymous_closure_lifted_to_named_issue_2403.txt Correctly compile rvalue closures defined in nested defines to lvalues 2022-12-01 15:47:18 -06: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 update mono 2023-03-13 18:03:05 -07:00
call_function_in_empty_list_unbound.txt update mono 2023-03-13 18:03:05 -07:00
choose_correct_recursion_var_under_record.txt update mono 2023-03-13 18:03:05 -07:00
choose_i128_layout.txt update mono 2023-03-12 08:42:37 -07:00
choose_u64_layout.txt update mono 2023-03-12 08:42:37 -07:00
choose_u128_layout.txt update mono 2023-03-12 08:42:37 -07:00
closure_in_list.txt update mono 2023-03-13 18:03:05 -07:00
compose_recursive_lambda_set_productive_nullable_wrapped.txt Generate code for recursive nullable wrapped lambda sets 2023-03-27 10:11:49 -05:00
crash.txt Update mono 2022-11-24 14:46:54 -06:00
dict.txt update dict.txt 2023-03-17 11:33:39 -05:00
empty_list_of_function_type.txt update mono 2023-03-13 18:03:05 -07:00
encode.txt update mono 2023-03-13 18:03:05 -07:00
encode_derived_nested_record_string.txt Update mono tests 2023-03-23 10:18:04 -05:00
encode_derived_record_one_field_string.txt Update mono tests 2023-03-23 10:18:04 -05:00
encode_derived_record_two_field_strings.txt Update mono tests 2023-03-23 10:18:04 -05:00
encode_derived_string.txt Update mono tests 2023-03-23 10:18:04 -05:00
encode_derived_tag_one_field_string.txt Update mono tests 2023-03-23 10:18:04 -05:00
encode_derived_tag_two_payloads_string.txt Update mono tests 2023-03-23 10:18:04 -05:00
factorial.txt update mono 2023-03-12 08:42:37 -07:00
fst.txt moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00
function_pointer_lambda_set.txt Do not attempt to handle aliasing of procs in variable assignments 2022-12-01 15:20:58 -06:00
function_specialization_information_in_lambda_set_thunk.txt update mono 2023-03-12 08:42:37 -07:00
function_specialization_information_in_lambda_set_thunk_independent_defs.txt update mono 2023-03-12 08:42:37 -07:00
guard_pattern_true.txt Update mono tests 2023-03-25 16:14:30 -05:00
if_guard_bind_variable_false.txt Update mono tests 2023-03-25 16:14:30 -05:00
if_multi_branch.txt Consolidate mono test behavior in debug and release modes 2022-11-02 15:04:47 -05:00
inline_return_joinpoints_in_bool_lambda_set.txt update mono 2023-03-12 08:42:37 -07:00
inline_return_joinpoints_in_enum_lambda_set.txt update mono 2023-03-12 08:42:37 -07:00
inline_return_joinpoints_in_union_lambda_set.txt update mono 2023-03-12 08:42:37 -07:00
instantiate_annotated_as_recursive_alias_multiple_polymorphic_expr.txt Fix mono test 2023-01-18 10:06:14 -06:00
instantiate_annotated_as_recursive_alias_polymorphic_expr.txt Rip out polymorphic expression compilation 2023-01-21 12:37:09 -06: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 update mono 2023-03-13 18:03:05 -07: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 2023-03-12 08:42:37 -07:00
ir_round.txt update mono 2023-03-12 08:42:37 -07:00
ir_two_defs.txt update mono 2023-03-12 08:42:37 -07:00
ir_when_idiv.txt update mono 2023-03-12 08:42:37 -07:00
ir_when_just.txt update mono 2023-03-12 08:42:37 -07: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 Consolidate mono test behavior in debug and release modes 2022-11-02 15:04:47 -05:00
issue_2535_let_weakened_fields_referenced_in_list.txt Weaken records in let-bindings 2023-01-14 15:33:51 +01:00
issue_2583_specialize_errors_behind_unified_branches.txt update mono tests 2023-03-15 16:44:02 -07:00
issue_2725_alias_polymorphic_lambda.txt Do not attempt to handle aliasing of procs in variable assignments 2022-12-01 15:20:58 -06: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
issue_3669.txt Consolidate mono test behavior in debug and release modes 2022-11-02 15:04:47 -05:00
issue_4557.txt Fix a bug in chasing assigned/hole on switch 2023-03-05 22:19:16 -06:00
issue_4705.txt Check in test for #4705 2022-12-07 10:59:05 -06:00
issue_4749.txt Fix mono tests 2023-03-25 16:15:09 -05:00
issue_4759.txt Remove inaccurate debug assertion in IR gen 2023-03-28 15:06:44 -05:00
issue_4772_weakened_monomorphic_destructure.txt Fix mono tests 2023-03-25 16:15:09 -05:00
lambda_capture_niche_u8_vs_u64.txt update mono 2023-03-12 08:42:37 -07:00
lambda_capture_niches_have_captured_function_in_closure.txt Fix a bug in chasing assigned/hole on switch 2023-03-05 22:19:16 -06:00
lambda_capture_niches_with_non_capturing_function.txt Fix a bug in chasing assigned/hole on switch 2023-03-05 22:19:16 -06:00
lambda_capture_niches_with_other_lambda_capture.txt Fix a bug in chasing assigned/hole on switch 2023-03-05 22:19:16 -06:00
lambda_set_niche_same_layout_different_constructor.txt update mono tests 2023-03-08 23:03:32 +01:00
lambda_set_with_imported_toplevels_issue_4733.txt update mono 2023-03-12 08:42:37 -07:00
layout_cache_structure_with_multiple_recursive_structures.txt Record all nested recursive structures an entry in the layout cache contains 2023-03-30 18:15:35 -05: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 Rip out polymorphic expression compilation 2023-01-21 12:37:09 -06:00
list_append.txt update mono 2023-03-13 18:03:05 -07:00
list_append_closure.txt update mono 2023-03-13 18:03:05 -07:00
list_cannot_update_inplace.txt update mono 2023-03-13 18:03:05 -07:00
list_get.txt update mono 2023-03-13 18:03:05 -07:00
list_len.txt update mono 2023-03-13 18:03:05 -07:00
list_map_closure_borrows.txt update mono tests 2023-03-15 16:44:02 -07:00
list_map_closure_owns.txt update mono tests 2023-03-15 16:44:02 -07:00
list_map_take_capturing_or_noncapturing.txt update mono 2023-03-13 18:03:05 -07:00
list_one_vs_one_spread_issue_4685.txt Update mono tests 2022-12-25 16:56:00 -06:00
list_pass_to_function.txt update mono 2023-03-13 18:03:05 -07:00
list_sort_asc.txt update mono 2023-03-13 18:03:05 -07:00
match_list.txt Update mono tests 2022-12-25 16:56:00 -06:00
match_on_result_with_uninhabited_error_branch.txt Unwrap layouts containing void layouts as newtypes 2022-09-19 16:50:49 -05: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 Weaken lists 2023-01-12 10:02:20 -06:00
monomorphized_tag.txt Weaken zero-argument tags in let bindings 2023-01-16 10:49:16 -06:00
monomorphized_tag_with_aliased_args.txt Consolidate mono test behavior in debug and release modes 2022-11-02 15:04:47 -05:00
nested_closure.txt Treat unwrapped capture sets as unwrapped directly 2022-08-19 22:16:41 -05:00
nested_pattern_match.txt update mono 2023-03-12 08:42:37 -07:00
nullable_wrapped_with_non_nullable_singleton_tags.txt update mono tests 2023-03-15 16:44:02 -07:00
nullable_wrapped_with_nullable_not_last_index.txt Check in mono test case 2023-01-09 16:35:25 -06:00
num_width_gt_u8_layout_as_float.txt update mono 2023-03-12 08:42:37 -07: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 2023-03-12 08:42:37 -07:00
order_list_size_tests_issue_4732.txt Update mono test name 2022-12-25 16:56:00 -06:00
pattern_as_nested.txt implement standard as patterns in mono IR 2023-01-11 14:18:13 +01:00
pattern_as_of_symbol.txt implement standard as patterns in mono IR 2023-01-11 14:18:13 +01:00
pattern_as_toplevel.txt implement standard as patterns in mono IR 2023-01-11 14:18:13 +01: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
polymorphic_expression_unification.txt update mono tests 2023-03-15 16:44:02 -07:00
quicksort_help.txt update mono 2023-03-12 08:42:37 -07:00
quicksort_swap.txt update mono 2023-03-13 18:03:05 -07:00
record_optional_field_function_no_use_default.txt update mono 2023-03-12 08:42:37 -07:00
record_optional_field_function_use_default.txt update mono 2023-03-12 08:42:37 -07:00
record_optional_field_let_no_use_default.txt update mono 2023-03-12 08:42:37 -07:00
record_optional_field_let_use_default.txt update mono 2023-03-12 08:42:37 -07:00
recursive_call_capturing_function.txt update mono 2023-03-12 08:42:37 -07:00
recursive_closure_with_transiently_used_capture.txt Check in mono golden 2023-03-21 07:18:12 -04:00
recursive_function_and_union_with_inference_hole.txt Check in mono test that works now 2023-03-25 15:58:39 -05:00
recursive_lambda_set_has_nested_non_recursive_lambda_sets_issue_5026.txt Fix a bug in chasing assigned/hole on switch 2023-03-05 22:19:16 -06:00
recursive_lambda_set_resolved_only_upon_specialization.txt Add a mono test for recursive lambda sets with late specialization 2023-03-27 10:11:26 -05:00
recursively_build_effect.txt update mono tests 2023-03-15 16:44:02 -07:00
rigids.txt update mono 2023-03-13 18:03:05 -07:00
simple_if.txt Consolidate mono test behavior in debug and release modes 2022-11-02 15:04:47 -05:00
specialize_ability_call.txt Update tests 2022-07-18 17:55:02 -04:00
specialize_closures.txt update mono 2023-03-12 08:42:37 -07:00
specialize_lowlevel.txt update mono 2023-03-12 08:42:37 -07:00
tail_call_elimination.txt update mono 2023-03-12 08:42:37 -07:00
tail_call_with_different_layout.txt update mono tests 2023-03-08 23:03:32 +01:00
tail_call_with_same_layout_different_lambda_sets.txt update mono tests 2023-03-08 23:03:32 +01:00
toplevel_accessor_fn_thunk.txt Update mono tests 2023-01-21 12:37:10 -06:00
tuple_pattern_match.txt implement mono / lowering for tuples 2023-02-07 18:54:50 -08:00
unreachable_branch_is_eliminated_but_produces_lambda_specializations.txt Eliminate joinpoints in trivial lambda set switches 2023-03-05 21:59:01 -06:00
unreachable_void_constructor.txt Update mono 2022-11-24 14:46:54 -06:00
unspecialized_lambda_set_unification_does_not_duplicate_identical_concrete_types.txt Update mono tests 2023-03-23 10:18:04 -05:00
unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification.txt Eliminate joinpoints in trivial lambda set switches 2023-03-05 21:59:01 -06:00
unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt Update mono tests 2023-03-23 10:18:04 -05:00
weakening_avoids_overspecialization.txt update mono 2023-03-13 18:03:05 -07:00
when_guard_appears_multiple_times_in_compiled_decision_tree_issue_5176.txt Handle guards that appear multiple times in a compiled decision tree 2023-03-25 16:14:21 -05: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 2023-03-12 08:42:37 -07:00
when_on_record.txt update mono 2023-03-12 08:42:37 -07: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 2023-03-12 08:42:37 -07:00