mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 04:08:19 +00:00
fix llvm gen tests
This commit is contained in:
parent
f7104bfe54
commit
c38f8bec75
2 changed files with 35 additions and 40 deletions
|
@ -144,14 +144,8 @@ fn build_eq<'a, 'ctx>(
|
|||
lhs_val: BasicValueEnum<'ctx>,
|
||||
rhs_val: BasicValueEnum<'ctx>,
|
||||
lhs_layout: LayoutRepr<'a>,
|
||||
rhs_layout: LayoutRepr<'a>,
|
||||
_rhs_layout: LayoutRepr<'a>,
|
||||
) -> BasicValueEnum<'ctx> {
|
||||
debug_assert_eq!(
|
||||
lhs_layout, rhs_layout,
|
||||
"Equality of different layouts; did you have a type mismatch?\n{:?} == {:?}",
|
||||
lhs_layout, rhs_layout
|
||||
);
|
||||
|
||||
match lhs_layout {
|
||||
LayoutRepr::Builtin(builtin) => build_eq_builtin(
|
||||
env,
|
||||
|
|
|
@ -2211,45 +2211,46 @@ fn nullable_eval_cfold() {
|
|||
#[test]
|
||||
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm", feature = "gen-dev"))]
|
||||
fn nested_switch() {
|
||||
// exposed bug with passing the right symbol/layout down into switch branch generation
|
||||
// This is also the only test_gen test that exercises Reset/Reuse (as of Aug 2022)
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
app "test" provides [main] to "./platform"
|
||||
crate::helpers::with_larger_debug_stack(||
|
||||
// exposed bug with passing the right symbol/layout down into switch branch generation
|
||||
// This is also the only test_gen test that exercises Reset/Reuse (as of Aug 2022)
|
||||
assert_evals_to!(
|
||||
indoc!(
|
||||
r#"
|
||||
app "test" provides [main] to "./platform"
|
||||
|
||||
Expr : [ZAdd Expr Expr, Val I64, Var I64]
|
||||
Expr : [ZAdd Expr Expr, Val I64, Var I64]
|
||||
|
||||
eval : Expr -> I64
|
||||
eval = \e ->
|
||||
when e is
|
||||
Var _ -> 0
|
||||
Val v -> v
|
||||
ZAdd l r -> eval l + eval r
|
||||
eval : Expr -> I64
|
||||
eval = \e ->
|
||||
when e is
|
||||
Var _ -> 0
|
||||
Val v -> v
|
||||
ZAdd l r -> eval l + eval r
|
||||
|
||||
constFolding : Expr -> Expr
|
||||
constFolding = \e ->
|
||||
when e is
|
||||
ZAdd e1 e2 ->
|
||||
when Pair e1 e2 is
|
||||
Pair (Val a) (Val b) -> Val (a+b)
|
||||
Pair (Val a) (ZAdd x (Val b)) -> ZAdd (Val (a+b)) x
|
||||
Pair _ _ -> ZAdd e1 e2
|
||||
constFolding : Expr -> Expr
|
||||
constFolding = \e ->
|
||||
when e is
|
||||
ZAdd e1 e2 ->
|
||||
when Pair e1 e2 is
|
||||
Pair (Val a) (Val b) -> Val (a+b)
|
||||
Pair (Val a) (ZAdd x (Val b)) -> ZAdd (Val (a+b)) x
|
||||
Pair _ _ -> ZAdd e1 e2
|
||||
|
||||
|
||||
_ -> e
|
||||
_ -> e
|
||||
|
||||
|
||||
expr : Expr
|
||||
expr = ZAdd (Val 3) (ZAdd (Val 4) (Val 5))
|
||||
expr : Expr
|
||||
expr = ZAdd (Val 3) (ZAdd (Val 4) (Val 5))
|
||||
|
||||
main : I64
|
||||
main = eval (constFolding expr)
|
||||
"#
|
||||
),
|
||||
12,
|
||||
i64
|
||||
);
|
||||
main : I64
|
||||
main = eval (constFolding expr)
|
||||
"#
|
||||
),
|
||||
12,
|
||||
i64
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -4522,8 +4523,8 @@ fn linked_list_trmc() {
|
|||
Nil -> 0
|
||||
Cons _ rest -> 1 + length rest
|
||||
|
||||
main : I64
|
||||
main =
|
||||
main : I64
|
||||
main =
|
||||
repeat "foo" 5
|
||||
|> length
|
||||
"#
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue