mirror of
https://github.com/tweag/nickel.git
synced 2024-11-10 10:46:49 +03:00
Test that Eq correctly clear the stack
This commit is contained in:
parent
c82eed5b95
commit
7a40814216
@ -1307,6 +1307,33 @@ Assume(#alwaysTrue, false)
|
||||
assert_npeq!("{ a = { a = true } }", "{a = { a = { a = true } } }");
|
||||
}
|
||||
|
||||
// Now that the equality operator directly uses the stack to store its continuation (see
|
||||
// https://github.com/tweag/nickel/pull/247), check that it correctly cleans the stack when
|
||||
// evaluating a subequality to `false`.
|
||||
#[test]
|
||||
fn poly_eq_nested() {
|
||||
// Generate an non-empty evaluation context to evaluate equalities over a non-empty stack
|
||||
let with_context = |t1, t2| {
|
||||
format!("let not = fun b => if b then true else false in not (not (not (not (({}) == ({})))))", t1, t2)
|
||||
};
|
||||
|
||||
assert_peq!(
|
||||
with_context(
|
||||
"{a = 1 + 0; b = 1 + 1; c = 0; d = 0}",
|
||||
"{ a = 1; b = 3; c = 0; d = 0}"
|
||||
),
|
||||
"false"
|
||||
);
|
||||
|
||||
assert_peq!(
|
||||
with_context(
|
||||
"[[1,2,3,4], [1,0,3,4], [1,2,3,4], [1,2,3,4]]",
|
||||
"[[1,2,3,4], [1,2,3,4], [1,2,3,4], [1,2,3,4]]"
|
||||
),
|
||||
"false"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fields_of() {
|
||||
assert_peq!("%fieldsOf% {}", "[]");
|
||||
|
Loading…
Reference in New Issue
Block a user