roc/crates/compiler/test_mono/generated
Ayaz Hafiz a5e1558a6e
Do not drop uninhabited captures from lambda sets
Previously, we would drop uninhabited captures from lambda sets' runtime
representations, which meant sets like

```
[L1 {a: Str}, L2 {a: []}]
```

had runtime representation

```
{Str}
```

rather than

```
Union({Str}, {[]})
```

if we drop unreachable lambdas from the representation, then the
reachable lambdas are somewhat more efficient to compile (as there are
less material tag options), but the compiler complexity increases
because we must represent voided capture sets in the lambda set.

Even if a lambda has voided captures, we must specialize it, because
failing to do so opens us up to losing relevant specializations needed
later on. See 2f7020aa31 for a
previous occurence of that.

As such, simply keep voided layouts in place during lambda set
compilation. The optimizer should elide them anyway.
2023-06-29 17:32:50 -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 fix bugs 2023-06-24 14:49:47 +02: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
binary_tree_fbip.txt update mono tests 2023-06-27 19:39:26 +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 Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
call_function_in_empty_list_unbound.txt Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
capture_void_layout_task.txt Do not drop uninhabited captures from lambda sets 2023-06-29 17:32:50 -05:00
choose_correct_recursion_var_under_record.txt update mono tests 2023-06-27 19:39:26 +02:00
choose_i128_layout.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
choose_u64_layout.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
choose_u128_layout.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
closure_in_list.txt Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
compose_recursive_lambda_set_productive_nullable_wrapped.txt update mono tests 2023-06-27 19:39:26 +02:00
crash.txt simplified join + mono 2023-04-26 20:11:44 +02:00
dbg_in_expect.txt updated Stmt::Dbg 2023-06-07 08:34:36 +02:00
dbg_str_followed_by_number.txt Use correct variable when compiling dbg continuation 2023-06-13 16:45:02 -05:00
dict.txt Update mono tests 2023-06-27 14:53:48 -04:00
drop_specialize_after_jump.txt Start drop specialisation for joinpoints 2023-06-10 23:53:19 +02:00
drop_specialize_after_struct.txt saved info and added test 2023-05-26 15:56:18 +02:00
drop_specialize_before_jump.txt progress 2023-06-10 23:55:09 +02:00
empty_list_of_function_type.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
encode.txt Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
encode_derived_nested_record_string.txt fix bugs 2023-06-24 14:49:47 +02:00
encode_derived_record_one_field_string.txt fix bugs 2023-06-24 14:49:47 +02:00
encode_derived_record_two_field_strings.txt fix bugs 2023-06-24 14:49:47 +02:00
encode_derived_string.txt fix bugs 2023-06-24 14:49:47 +02:00
encode_derived_tag_one_field_string.txt fix bugs 2023-06-24 14:49:47 +02:00
encode_derived_tag_two_payloads_string.txt fix bugs 2023-06-24 14:49:47 +02:00
error_on_erroneous_condition.txt Crash at runtime rather than panicking when if condition is erroneous 2023-05-01 15:48:05 -05:00
factorial.txt fix bugs 2023-06-24 14:49:47 +02:00
fst.txt Updated tests 2023-04-05 21:09:42 +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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
function_specialization_information_in_lambda_set_thunk_independent_defs.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
guard_pattern_true.txt Update mono tests 2023-03-25 16:14:30 -05:00
if_guard_bind_variable_false.txt updated tests 2023-04-16 16:34:41 +02: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 fix bugs 2023-06-24 14:49:47 +02:00
inline_return_joinpoints_in_enum_lambda_set.txt fix bugs 2023-06-24 14:49:47 +02:00
inline_return_joinpoints_in_union_lambda_set.txt fix bugs 2023-06-24 14:49:47 +02: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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02: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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
ir_round.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
ir_two_defs.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
ir_when_idiv.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
ir_when_just.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +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 Updated tests 2023-04-05 21:09:42 +02:00
issue_2535_let_weakened_fields_referenced_in_list.txt move record index to start of update 2023-05-27 14:42:37 +02:00
issue_2583_specialize_errors_behind_unified_branches.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02: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 simplified join + mono 2023-04-26 20:11:44 +02:00
issue_3669.txt update mono tests 2023-06-27 19:39:26 +02:00
issue_4557.txt updated tests 2023-04-16 16:34:41 +02:00
issue_4705.txt Check in test for #4705 2022-12-07 10:59:05 -06:00
issue_4749.txt fix bugs 2023-06-24 14:49:47 +02:00
issue_4759.txt For single update 2023-05-27 21:29:32 +02:00
issue_4770.txt update mono tests 2023-06-27 19:39:26 +02:00
issue_4772_weakened_monomorphic_destructure.txt fix bugs 2023-06-24 14:49:47 +02:00
lambda_capture_niche_u8_vs_u64.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
lambda_capture_niches_have_captured_function_in_closure.txt Updated tests 2023-04-05 21:09:42 +02: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 simplified join + mono 2023-04-26 20:11:44 +02:00
lambda_set_niche_same_layout_different_constructor.txt Begin generating newtype wrappers for struct layouts 2023-06-06 16:04:41 -05:00
lambda_set_with_imported_toplevels_issue_4733.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
layout_cache_structure_with_multiple_recursive_structures.txt fix bugs 2023-06-24 14:49:47 +02: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 Working IR 2023-04-22 13:32:38 +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
linked_list_filter.txt update mono tests 2023-06-27 19:39:26 +02:00
linked_list_map.txt update mono tests 2023-06-27 19:39:26 +02:00
linked_list_reverse.txt update mono tests 2023-06-27 19:39:26 +02:00
list_append.txt Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
list_append_closure.txt Add update to symbols table and auto generate test_mono 2023-05-30 09:07:15 +02:00
list_cannot_update_inplace.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_get.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_len.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_map_closure_borrows.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_map_closure_owns.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_map_take_capturing_or_noncapturing.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_one_vs_one_spread_issue_4685.txt saved info and added test 2023-05-26 15:56:18 +02:00
list_pass_to_function.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
list_sort_asc.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02: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 simplified join + mono 2023-04-26 20:11:44 +02: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 Updated tests 2023-04-05 21:09:42 +02:00
monomorphized_tag.txt Get started with semantic layouts for tag unions 2023-05-10 18:47:10 -05: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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
nullable_wrapped_with_non_nullable_singleton_tags.txt updated tests 2023-04-16 16:34:41 +02:00
nullable_wrapped_with_nullable_not_last_index.txt updated tests 2023-04-16 16:34:41 +02:00
num_width_gt_u8_layout_as_float.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
order_list_size_tests_issue_4732.txt Update mono test name 2022-12-25 16:56:00 -06:00
pattern_as_nested.txt Working IR 2023-04-22 13:32:38 +02:00
pattern_as_of_symbol.txt updated tests 2023-04-16 16:34:41 +02:00
pattern_as_toplevel.txt Working IR 2023-04-22 13:32:38 +02:00
peano.txt Update tests 2022-07-18 17:55:02 -04:00
peano1.txt update mono tests 2023-06-27 19:39:26 +02:00
peano2.txt update mono tests 2023-06-27 19:39:26 +02:00
polymorphic_expression_unification.txt update mono tests 2023-06-27 19:39:26 +02:00
quicksort_help.txt fix bugs 2023-06-24 14:49:47 +02:00
quicksort_swap.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
rb_tree_fbip.txt update mono tests 2023-06-27 19:39:26 +02:00
record_optional_field_function_no_use_default.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
record_optional_field_function_use_default.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
record_optional_field_let_no_use_default.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
record_optional_field_let_use_default.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
record_update.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
recursive_call_capturing_function.txt fix bugs 2023-06-24 14:49:47 +02: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 fix bugs 2023-06-24 14:49:47 +02:00
recursive_lambda_set_has_nested_non_recursive_lambda_sets_issue_5026.txt update mono tests 2023-06-27 19:39:26 +02:00
recursive_lambda_set_resolved_only_upon_specialization.txt update mono tests 2023-06-27 19:39:26 +02:00
recursively_build_effect.txt update mono tests 2023-06-27 19:39:26 +02:00
rigids.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02: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_after_match.txt update mono tests 2023-06-27 19:39:26 +02:00
specialize_closures.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
specialize_lowlevel.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
tail_call_elimination.txt fix bugs 2023-06-24 14:49:47 +02:00
tail_call_with_different_layout.txt update mono tests: procs generated by glue are now no longer generated 2023-04-21 20:59:35 +02:00
tail_call_with_same_layout_different_lambda_sets.txt update mono tests: procs generated by glue are now no longer generated 2023-04-21 20:59:35 +02: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 Updated tests 2023-04-05 21:09:42 +02: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 fix bugs 2023-06-24 14:49:47 +02:00
unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification.txt fix bugs 2023-06-24 14:49:47 +02:00
unspecialized_lambda_set_unification_keeps_all_concrete_types_without_unification_of_unifiable.txt fix bugs 2023-06-24 14:49:47 +02:00
weakening_avoids_overspecialization.txt fix bugs 2023-06-24 14:49:47 +02:00
when_guard_appears_multiple_times_in_compiled_decision_tree_issue_5176.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00
when_on_record.txt Add Num.bitwiseNot function 2023-06-17 20:08:33 +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 Add Num.bitwiseNot function 2023-06-17 20:08:33 +02:00