roc/crates/compiler/exhaustive
Ayaz Hafiz 666f0f8a52
Simplify constructor recovery
This fixes a bug in the list pattern matching code that caused crashes
in the presence of list guards, and simplifies the pattern splitting
algorithm to avoid complexity and allocations. Previously we would place
arguments-to-be-matched of constructors and lists at the front of
specialized rows for exhaustiveness checking, but at the back for
redundancy checking. Now, we always place them at the back - this avoids
needless allocation, and is not any worse, since we can still recover
the non-exhaustive witnesses by looking at the end of a list, instead of
the front.
2022-11-01 17:47:22 -05:00
..
src Simplify constructor recovery 2022-11-01 17:47:22 -05:00
Cargo.toml Implement sketching and pattern specialization for list patterns 2022-11-01 12:06:59 -05:00