1
1
mirror of https://github.com/anoma/juvix.git synced 2024-11-30 05:42:26 +03:00
juvix/tests
Łukasz Czajka ab2d31a313
Compilation of side conditions in pattern matches (#2984)
* Closes #2804 
* Requires #3003
* Front-end syntax for side conditions was implemented in #2852. This PR
implements compilation of side conditions.
* Adds side-conditions to `Match` nodes in Core. Updates Core parsing,
printing and the evaluator.
* Only side-conditions without an `else` branch are allowed in Core. If
there is an `else` branch, the side conditions are translated in
`fromInternal` into nested ifs. Because with `else` the conditions are
exhaustive, there are no implications for pattern exhaustiveness
checking.
* Adjusts the "wildcard row" case in the pattern matching compilation
algorithm to take into account the side conditions.
2024-09-09 12:25:15 +02:00
..
Anoma/Compilation Monad and Applicative traits in juvix stdlib (#2979) 2024-08-30 15:07:29 +02:00
Asm Remove copy propagation from the native/WASM and Rust pipelines (#2846) 2024-06-20 12:44:15 +02:00
benchmark Merge if -> ite renaming from stdlib (#2869) 2024-07-02 10:03:06 +02:00
Casm Improve specialization optimization (#2944) 2024-08-14 10:04:30 +02:00
Compilation Compilation of side conditions in pattern matches (#2984) 2024-09-09 12:25:15 +02:00
Core Fix inference of let and letrec in core (#2953) 2024-08-14 15:15:49 +01:00
examplesExpected Add a test suite for milestone examples (#1920) 2023-03-24 13:16:26 +00:00
Internal Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
negative Migrate old named application syntax (#2876) 2024-07-12 18:31:09 +02:00
nockma/positive Fix bugs in the Nockma prettyprinter and parser (#2632) 2024-02-09 14:59:42 +01:00
positive Compilation of side conditions in pattern matches (#2984) 2024-09-09 12:25:15 +02:00
Reg/positive Copy propagation in JuvixReg (#2828) 2024-06-18 21:38:02 +02:00
runtime/positive Add an if instruction to JuvixReg (#2855) 2024-06-26 19:08:33 +02:00
Rust/Compilation/positive Improve specialization optimization (#2944) 2024-08-14 10:04:30 +02:00
smoke Release 0.6.6 (#2993) 2024-09-03 18:10:01 +01:00
Tree Fix JuvixTree type unification (#2972) 2024-08-27 10:31:14 +02:00
VampIR Merge if -> ite renaming from stdlib (#2869) 2024-07-02 10:03:06 +02:00
WithoutPackageFile Fix #2510 (#2512) 2023-11-17 16:10:38 +01:00
.gitattributes Juvix C runtime (#1580) 2022-11-03 09:38:09 +01:00