chore: rename uplc builder builtins
This commit is contained in:
parent
3e283a59ec
commit
4dd17dacf3
|
@ -3842,7 +3842,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
if !names_empty {
|
if !names_empty {
|
||||||
let error_term = if self.tracing {
|
let error_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(TOO_MANY_ITEMS),
|
self.special_functions.use_function(TOO_MANY_ITEMS),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -3864,7 +3864,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
} else if check_last_item {
|
} else if check_last_item {
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(LIST_NOT_EMPTY),
|
self.special_functions.use_function(LIST_NOT_EMPTY),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4050,13 +4050,13 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
let term =
|
let term =
|
||||||
match name {
|
match name {
|
||||||
BinOp::And => left.delayed_if_else(right, Term::bool(false)),
|
BinOp::And => left.delayed_if_then_else(right, Term::bool(false)),
|
||||||
BinOp::Or => left.delayed_if_else(Term::bool(true), right),
|
BinOp::Or => left.delayed_if_then_else(Term::bool(true), right),
|
||||||
BinOp::Eq => {
|
BinOp::Eq => {
|
||||||
if tipo.is_bool() {
|
if tipo.is_bool() {
|
||||||
let term = left.delayed_if_else(
|
let term = left.delayed_if_then_else(
|
||||||
right.clone(),
|
right.clone(),
|
||||||
right.if_else(Term::bool(false), Term::bool(true)),
|
right.if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
);
|
);
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
|
@ -4098,8 +4098,10 @@ impl<'a> CodeGenerator<'a> {
|
||||||
}
|
}
|
||||||
BinOp::NotEq => {
|
BinOp::NotEq => {
|
||||||
if tipo.is_bool() {
|
if tipo.is_bool() {
|
||||||
let term = left.delayed_if_else(
|
let term = left.delayed_if_then_else(
|
||||||
right.clone().if_else(Term::bool(false), Term::bool(true)),
|
right
|
||||||
|
.clone()
|
||||||
|
.if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
right,
|
right,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -4109,7 +4111,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let term = builtin
|
let term = builtin
|
||||||
.apply(Term::map_data().apply(left))
|
.apply(Term::map_data().apply(left))
|
||||||
.apply(Term::map_data().apply(right))
|
.apply(Term::map_data().apply(right))
|
||||||
.if_else(Term::bool(false), Term::bool(true));
|
.if_then_else(Term::bool(false), Term::bool(true));
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
return;
|
return;
|
||||||
|
@ -4123,7 +4125,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
.apply(Term::map_data().apply(
|
.apply(Term::map_data().apply(
|
||||||
Term::mk_cons().apply(right).apply(Term::empty_map()),
|
Term::mk_cons().apply(right).apply(Term::empty_map()),
|
||||||
))
|
))
|
||||||
.if_else(Term::bool(false), Term::bool(true));
|
.if_then_else(Term::bool(false), Term::bool(true));
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
return;
|
return;
|
||||||
|
@ -4131,7 +4133,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let term = builtin
|
let term = builtin
|
||||||
.apply(Term::list_data().apply(left))
|
.apply(Term::list_data().apply(left))
|
||||||
.apply(Term::list_data().apply(right))
|
.apply(Term::list_data().apply(right))
|
||||||
.if_else(Term::bool(false), Term::bool(true));
|
.if_then_else(Term::bool(false), Term::bool(true));
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
return;
|
return;
|
||||||
|
@ -4143,7 +4145,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
builtin
|
builtin
|
||||||
.apply(left)
|
.apply(left)
|
||||||
.apply(right)
|
.apply(right)
|
||||||
.if_else(Term::bool(false), Term::bool(true))
|
.if_then_else(Term::bool(false), Term::bool(true))
|
||||||
}
|
}
|
||||||
BinOp::LtInt => Term::Builtin(DefaultFunction::LessThanInteger)
|
BinOp::LtInt => Term::Builtin(DefaultFunction::LessThanInteger)
|
||||||
.apply(left)
|
.apply(left)
|
||||||
|
@ -4351,7 +4353,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(INCORRECT_CONSTR),
|
self.special_functions.use_function(INCORRECT_CONSTR),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4364,7 +4366,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
Term::var(self.special_functions.use_function(CONSTR_INDEX_EXPOSER))
|
Term::var(self.special_functions.use_function(CONSTR_INDEX_EXPOSER))
|
||||||
.apply(constr),
|
.apply(constr),
|
||||||
)
|
)
|
||||||
.delayed_if_else(term, trace_term);
|
.delayed_if_then_else(term, trace_term);
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4373,7 +4375,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(INCORRECT_BOOLEAN),
|
self.special_functions.use_function(INCORRECT_BOOLEAN),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4381,9 +4383,9 @@ impl<'a> CodeGenerator<'a> {
|
||||||
};
|
};
|
||||||
|
|
||||||
if is_true {
|
if is_true {
|
||||||
term = value.delayed_if_else(term, trace_term)
|
term = value.delayed_if_then_else(term, trace_term)
|
||||||
} else {
|
} else {
|
||||||
term = value.delayed_if_else(trace_term, term)
|
term = value.delayed_if_then_else(trace_term, term)
|
||||||
}
|
}
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4438,11 +4440,11 @@ impl<'a> CodeGenerator<'a> {
|
||||||
if matches!(clause, Term::Constant(boolean) if matches!(boolean.as_ref(), UplcConstant::Bool(true)))
|
if matches!(clause, Term::Constant(boolean) if matches!(boolean.as_ref(), UplcConstant::Bool(true)))
|
||||||
{
|
{
|
||||||
body = Term::var(subject_name)
|
body = Term::var(subject_name)
|
||||||
.if_else(body.delay(), other_clauses)
|
.if_then_else(body.delay(), other_clauses)
|
||||||
.force();
|
.force();
|
||||||
} else {
|
} else {
|
||||||
body = Term::var(subject_name)
|
body = Term::var(subject_name)
|
||||||
.if_else(other_clauses, body.delay())
|
.if_then_else(other_clauses, body.delay())
|
||||||
.force();
|
.force();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4474,12 +4476,12 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
if complex_clause {
|
if complex_clause {
|
||||||
term = condition
|
term = condition
|
||||||
.if_else(body.delay(), Term::var("__other_clauses_delayed"))
|
.if_then_else(body.delay(), Term::var("__other_clauses_delayed"))
|
||||||
.force()
|
.force()
|
||||||
.lambda("__other_clauses_delayed")
|
.lambda("__other_clauses_delayed")
|
||||||
.apply(term.delay());
|
.apply(term.delay());
|
||||||
} else {
|
} else {
|
||||||
term = condition.delayed_if_else(body, term);
|
term = condition.delayed_if_then_else(body, term);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4584,9 +4586,13 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = Term::var("__other_clauses_delayed");
|
let mut term = Term::var("__other_clauses_delayed");
|
||||||
if matches!(checker, Term::Constant(boolean) if matches!(boolean.as_ref(), UplcConstant::Bool(true)))
|
if matches!(checker, Term::Constant(boolean) if matches!(boolean.as_ref(), UplcConstant::Bool(true)))
|
||||||
{
|
{
|
||||||
term = Term::var(subject_name).if_else(then.delay(), term).force();
|
term = Term::var(subject_name)
|
||||||
|
.if_then_else(then.delay(), term)
|
||||||
|
.force();
|
||||||
} else {
|
} else {
|
||||||
term = Term::var(subject_name).if_else(term, then.delay()).force();
|
term = Term::var(subject_name)
|
||||||
|
.if_then_else(term, then.delay())
|
||||||
|
.force();
|
||||||
}
|
}
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
} else {
|
} else {
|
||||||
|
@ -4612,7 +4618,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
};
|
};
|
||||||
|
|
||||||
let term = condition
|
let term = condition
|
||||||
.if_else(then.delay(), Term::var("__other_clauses_delayed"))
|
.if_then_else(then.delay(), Term::var("__other_clauses_delayed"))
|
||||||
.force();
|
.force();
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4695,7 +4701,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let then = arg_stack.pop().unwrap();
|
let then = arg_stack.pop().unwrap();
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
term = condition.delayed_if_else(then, term);
|
term = condition.delayed_if_then_else(then, term);
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
@ -4772,7 +4778,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
if !indices.is_empty() {
|
if !indices.is_empty() {
|
||||||
let error_term = if self.tracing {
|
let error_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(TOO_MANY_ITEMS),
|
self.special_functions.use_function(TOO_MANY_ITEMS),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4798,7 +4804,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
} else if check_last_item {
|
} else if check_last_item {
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(CONSTR_NOT_EMPTY),
|
self.special_functions.use_function(CONSTR_NOT_EMPTY),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4819,7 +4825,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(CONSTR_NOT_EMPTY),
|
self.special_functions.use_function(CONSTR_NOT_EMPTY),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -4837,7 +4843,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let mut term = arg_stack.pop().unwrap();
|
let mut term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let trace_term = if self.tracing {
|
let trace_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(LIST_NOT_EMPTY),
|
self.special_functions.use_function(LIST_NOT_EMPTY),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -5001,18 +5007,18 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let value = arg_stack.pop().unwrap();
|
let value = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let term = match op {
|
let term = match op {
|
||||||
UnOp::Not => value.if_else(Term::bool(false), Term::bool(true)),
|
UnOp::Not => value.if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
UnOp::Negate => {
|
UnOp::Negate => {
|
||||||
if let Term::Constant(c) = &value {
|
if let Term::Constant(c) = &value {
|
||||||
if let UplcConstant::Integer(i) = c.as_ref() {
|
if let UplcConstant::Integer(i) = c.as_ref() {
|
||||||
Term::integer(-i)
|
Term::integer(-i)
|
||||||
} else {
|
} else {
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(value)
|
.apply(value)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(value)
|
.apply(value)
|
||||||
}
|
}
|
||||||
|
@ -5066,7 +5072,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
let names_types = names.into_iter().zip(inner_types).collect_vec();
|
let names_types = names.into_iter().zip(inner_types).collect_vec();
|
||||||
|
|
||||||
let error_term = if self.tracing {
|
let error_term = if self.tracing {
|
||||||
Term::Error.trace(Term::var(
|
Term::Error.delayed_trace(Term::var(
|
||||||
self.special_functions.use_function(TOO_MANY_ITEMS),
|
self.special_functions.use_function(TOO_MANY_ITEMS),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
|
@ -5097,7 +5103,7 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
let term = arg_stack.pop().unwrap();
|
let term = arg_stack.pop().unwrap();
|
||||||
|
|
||||||
let term = term.trace(text);
|
let term = term.delayed_trace(text);
|
||||||
|
|
||||||
arg_stack.push(term);
|
arg_stack.push(term);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1194,7 +1194,7 @@ pub fn convert_data_to_type(term: Term<Name>, field_type: &Rc<Type>) -> Term<Nam
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::fst_pair().apply(Term::unconstr_data().apply(term)))
|
.apply(Term::fst_pair().apply(Term::unconstr_data().apply(term)))
|
||||||
.delayed_if_else(Term::unit(), Term::Error)
|
.delayed_if_then_else(Term::unit(), Term::Error)
|
||||||
} else if field_type.is_map() {
|
} else if field_type.is_map() {
|
||||||
Term::unmap_data().apply(term)
|
Term::unmap_data().apply(term)
|
||||||
} else if field_type.is_string() {
|
} else if field_type.is_string() {
|
||||||
|
@ -1332,7 +1332,7 @@ pub fn convert_type_to_data(term: Term<Name>, field_type: &Rc<Type>) -> Term<Nam
|
||||||
} else if field_type.is_list() || field_type.is_tuple() {
|
} else if field_type.is_list() || field_type.is_tuple() {
|
||||||
Term::list_data().apply(term)
|
Term::list_data().apply(term)
|
||||||
} else if field_type.is_bool() {
|
} else if field_type.is_bool() {
|
||||||
term.if_else(
|
term.if_then_else(
|
||||||
Term::Constant(
|
Term::Constant(
|
||||||
UplcConstant::Data(PlutusData::Constr(Constr {
|
UplcConstant::Data(PlutusData::Constr(Constr {
|
||||||
tag: convert_constr_to_tag(1).unwrap(),
|
tag: convert_constr_to_tag(1).unwrap(),
|
||||||
|
@ -1713,17 +1713,17 @@ pub fn wrap_as_multi_validator(
|
||||||
spend_name
|
spend_name
|
||||||
);
|
);
|
||||||
|
|
||||||
let error_term = Term::Error.trace(Term::var("__incorrect_second_arg_type"));
|
let error_term = Term::Error.delayed_trace(Term::var("__incorrect_second_arg_type"));
|
||||||
|
|
||||||
Term::var("__second_arg")
|
Term::var("__second_arg")
|
||||||
.delayed_choose_data(
|
.delayed_choose_data(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("__second_arg")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("__second_arg")))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
mint.apply(Term::var("__first_arg"))
|
mint.apply(Term::var("__first_arg"))
|
||||||
.apply(Term::var("__second_arg"))
|
.apply(Term::var("__second_arg"))
|
||||||
.trace(Term::string(format!(
|
.delayed_trace(Term::string(format!(
|
||||||
"Running 2 arg validator {}",
|
"Running 2 arg validator {}",
|
||||||
mint_name
|
mint_name
|
||||||
))),
|
))),
|
||||||
|
@ -1732,7 +1732,7 @@ pub fn wrap_as_multi_validator(
|
||||||
.apply(Term::head_list().apply(
|
.apply(Term::head_list().apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("__second_arg")),
|
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("__second_arg")),
|
||||||
))
|
))
|
||||||
.trace(Term::string(format!(
|
.delayed_trace(Term::string(format!(
|
||||||
"Running 3 arg validator {}",
|
"Running 3 arg validator {}",
|
||||||
spend_name
|
spend_name
|
||||||
))),
|
))),
|
||||||
|
@ -1750,7 +1750,7 @@ pub fn wrap_as_multi_validator(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("__second_arg")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("__second_arg")))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
mint.apply(Term::var("__first_arg"))
|
mint.apply(Term::var("__first_arg"))
|
||||||
.apply(Term::var("__second_arg")),
|
.apply(Term::var("__second_arg")),
|
||||||
spend.apply(Term::var("__first_arg")).apply(
|
spend.apply(Term::var("__first_arg")).apply(
|
||||||
|
|
|
@ -192,7 +192,7 @@ fn acceptance_test_2_repeat() {
|
||||||
Term::less_than_equals_integer()
|
Term::less_than_equals_integer()
|
||||||
.apply(Term::var("n"))
|
.apply(Term::var("n"))
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(Term::b_data().apply(Term::var("x")))
|
.apply(Term::b_data().apply(Term::var("x")))
|
||||||
|
@ -200,7 +200,7 @@ fn acceptance_test_2_repeat() {
|
||||||
Term::var("repeat")
|
Term::var("repeat")
|
||||||
.apply(Term::var("repeat"))
|
.apply(Term::var("repeat"))
|
||||||
.apply(
|
.apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::var("n"))
|
.apply(Term::var("n"))
|
||||||
.apply(Term::integer(1.into())),
|
.apply(Term::integer(1.into())),
|
||||||
),
|
),
|
||||||
|
@ -685,7 +685,7 @@ fn acceptance_test_6_if_else() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.delayed_if_else(Term::bool(true), Term::bool(false)),
|
.delayed_if_then_else(Term::bool(true), Term::bool(false)),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -889,9 +889,9 @@ fn acceptance_test_8_is_empty() {
|
||||||
.lambda("bytes"),
|
.lambda("bytes"),
|
||||||
)
|
)
|
||||||
.apply(Term::byte_string(vec![]))
|
.apply(Term::byte_string(vec![]))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -922,9 +922,9 @@ fn acceptance_test_8_is_not_empty() {
|
||||||
.lambda("bytes"),
|
.lambda("bytes"),
|
||||||
)
|
)
|
||||||
.apply(Term::byte_string(vec![1]))
|
.apply(Term::byte_string(vec![1]))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
Term::bool(false).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(false).if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -955,9 +955,9 @@ fn acceptance_test_9_is_empty() {
|
||||||
.lambda("bytes"),
|
.lambda("bytes"),
|
||||||
)
|
)
|
||||||
.apply(Term::byte_string(vec![]))
|
.apply(Term::byte_string(vec![]))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
),
|
),
|
||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
@ -994,7 +994,7 @@ fn acceptance_test_10_map_none() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("constr_index"))
|
.apply(Term::var("constr_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
||||||
Term::constr_data()
|
Term::constr_data()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
|
@ -1076,7 +1076,7 @@ fn acceptance_test_10_map_some() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("constr_index"))
|
.apply(Term::var("constr_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
||||||
Term::constr_data()
|
Term::constr_data()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
|
@ -1318,7 +1318,7 @@ fn acceptance_test_12_filter_even() {
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
Term::var("f")
|
Term::var("f")
|
||||||
.apply(Term::var("x"))
|
.apply(Term::var("x"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(Term::i_data().apply(Term::var("x")))
|
.apply(Term::i_data().apply(Term::var("x")))
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -1388,7 +1388,7 @@ fn acceptance_test_14_list_creation() {
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::i_data().apply(
|
Term::i_data().apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::integer(2.into())),
|
.apply(Term::integer(2.into())),
|
||||||
),
|
),
|
||||||
|
@ -1397,7 +1397,7 @@ fn acceptance_test_14_list_creation() {
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::i_data().apply(
|
Term::i_data().apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::integer(1.into())),
|
.apply(Term::integer(1.into())),
|
||||||
),
|
),
|
||||||
|
@ -1481,7 +1481,7 @@ fn acceptance_test_16_drop() {
|
||||||
.apply(Term::var("bytes"))
|
.apply(Term::var("bytes"))
|
||||||
.apply(Term::var("n"))
|
.apply(Term::var("n"))
|
||||||
.apply(
|
.apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::var("length").apply(Term::var("bytes")))
|
.apply(Term::var("length").apply(Term::var("bytes")))
|
||||||
.apply(Term::var("n")),
|
.apply(Term::var("n")),
|
||||||
)
|
)
|
||||||
|
@ -1591,7 +1591,7 @@ fn acceptance_test_18_or_else() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::var("default"),
|
Term::var("default"),
|
||||||
Term::var("a")
|
Term::var("a")
|
||||||
.lambda("a")
|
.lambda("a")
|
||||||
|
@ -1654,7 +1654,7 @@ fn acceptance_test_19_map_none_wrap_int() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::data(Data::constr(1, vec![])),
|
Term::data(Data::constr(1, vec![])),
|
||||||
Term::constr_data()
|
Term::constr_data()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
|
@ -1724,7 +1724,7 @@ fn acceptance_test_19_map_wrap_void() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::data(Data::constr(1, vec![])),
|
Term::data(Data::constr(1, vec![])),
|
||||||
Term::constr_data()
|
Term::constr_data()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
|
@ -1795,7 +1795,7 @@ fn acceptance_test_20_map_some() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("constr_index"))
|
.apply(Term::var("constr_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
||||||
Term::constr_data()
|
Term::constr_data()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
|
@ -1890,7 +1890,7 @@ fn acceptance_test_22_filter_map() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject_index"))
|
.apply(Term::var("subject_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::var("ys"),
|
Term::var("ys"),
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(Term::i_data().apply(Term::var("y")))
|
.apply(Term::i_data().apply(Term::var("y")))
|
||||||
|
@ -2082,12 +2082,12 @@ fn acceptance_test_24_map2() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("opt_a_index"))
|
.apply(Term::var("opt_a_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
Term::Constant(Constant::Data(Data::constr(1, vec![])).into()),
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("opt_b_index"))
|
.apply(Term::var("opt_b_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::Constant(
|
Term::Constant(
|
||||||
Constant::Data(Data::constr(1, vec![])).into(),
|
Constant::Data(Data::constr(1, vec![])).into(),
|
||||||
),
|
),
|
||||||
|
@ -2643,7 +2643,7 @@ fn expect_empty_list_on_filled_list() {
|
||||||
Term::var("x")
|
Term::var("x")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::Error.trace(Term::string("Expected no items for List")),
|
Term::Error.delayed_trace(Term::string("Expected no items for List")),
|
||||||
)
|
)
|
||||||
.lambda("x")
|
.lambda("x")
|
||||||
.apply(Term::list_values(vec![
|
.apply(Term::list_values(vec![
|
||||||
|
@ -2670,7 +2670,7 @@ fn expect_empty_list_on_new_list() {
|
||||||
Term::var("x")
|
Term::var("x")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::Error.trace(Term::string("Expected no items for List")),
|
Term::Error.delayed_trace(Term::string("Expected no items for List")),
|
||||||
)
|
)
|
||||||
.lambda("x")
|
.lambda("x")
|
||||||
.apply(Term::list_values(vec![])),
|
.apply(Term::list_values(vec![])),
|
||||||
|
@ -2694,7 +2694,7 @@ fn when_bool_is_true() {
|
||||||
assert_uplc(
|
assert_uplc(
|
||||||
src,
|
src,
|
||||||
Term::var("subject")
|
Term::var("subject")
|
||||||
.delayed_if_else(Term::bool(true), Term::Error)
|
.delayed_if_then_else(Term::bool(true), Term::Error)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::bool(true)),
|
.apply(Term::bool(true)),
|
||||||
false,
|
false,
|
||||||
|
@ -2717,7 +2717,7 @@ fn when_bool_is_true_switched_cases() {
|
||||||
assert_uplc(
|
assert_uplc(
|
||||||
src,
|
src,
|
||||||
Term::var("subject")
|
Term::var("subject")
|
||||||
.delayed_if_else(Term::bool(true), Term::Error)
|
.delayed_if_then_else(Term::bool(true), Term::Error)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::bool(true)),
|
.apply(Term::bool(true)),
|
||||||
false,
|
false,
|
||||||
|
@ -2740,7 +2740,7 @@ fn when_bool_is_false() {
|
||||||
assert_uplc(
|
assert_uplc(
|
||||||
src,
|
src,
|
||||||
Term::var("subject")
|
Term::var("subject")
|
||||||
.delayed_if_else(Term::bool(true), Term::Error)
|
.delayed_if_then_else(Term::bool(true), Term::Error)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::bool(false)),
|
.apply(Term::bool(false)),
|
||||||
true,
|
true,
|
||||||
|
@ -2781,11 +2781,11 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("dat")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("dat")))
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("red")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("red")))
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(
|
.apply(
|
||||||
Term::un_i_data().apply(
|
Term::un_i_data().apply(
|
||||||
|
@ -2795,9 +2795,9 @@ fn when_tuple_deconstruction() {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.apply(Term::var("x"))
|
.apply(Term::var("x"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(false).trace(Term::string("a.idx == x ? False")),
|
Term::bool(false).delayed_trace(Term::string("a.idx == x ? False")),
|
||||||
)
|
)
|
||||||
.lambda("x")
|
.lambda("x")
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -2830,11 +2830,11 @@ fn when_tuple_deconstruction() {
|
||||||
.apply(Term::var("dat"))
|
.apply(Term::var("dat"))
|
||||||
.apply(Term::var("red")),
|
.apply(Term::var("red")),
|
||||||
)
|
)
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error
|
Term::Error
|
||||||
.apply(Term::Error.force())
|
.apply(Term::Error.force())
|
||||||
.trace(Term::string("Validator returned false")),
|
.delayed_trace(Term::string("Validator returned false")),
|
||||||
)
|
)
|
||||||
.lambda("_")
|
.lambda("_")
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -2844,12 +2844,12 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("red_constr_fields"))
|
.apply(Term::var("red_constr_fields"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("field_1")
|
.lambda("field_1")
|
||||||
.apply(Term::un_i_data().apply(
|
.apply(Term::un_i_data().apply(
|
||||||
|
@ -2862,14 +2862,15 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("red"))
|
.apply(Term::var("red"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(CONSTR_NOT_EMPTY)),
|
Term::Error
|
||||||
|
.delayed_trace(Term::var(CONSTR_NOT_EMPTY)),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
Term::Error.delayed_trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
|
@ -2888,14 +2889,14 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("dat_constr_fields"))
|
.apply(Term::var("dat_constr_fields"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit().lambda("_").apply(
|
Term::unit().lambda("_").apply(
|
||||||
Term::var("expect_Thing").apply(Term::var("field_1")),
|
Term::var("expect_Thing").apply(Term::var("field_1")),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("field_1")
|
.lambda("field_1")
|
||||||
.apply(Term::head_list().apply(Term::var("dat_constr_fields")))
|
.apply(Term::head_list().apply(Term::var("dat_constr_fields")))
|
||||||
|
@ -2906,14 +2907,15 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("dat"))
|
.apply(Term::var("dat"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(CONSTR_NOT_EMPTY)),
|
Term::Error
|
||||||
|
.delayed_trace(Term::var(CONSTR_NOT_EMPTY)),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
Term::Error.delayed_trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
|
@ -2925,12 +2927,12 @@ fn when_tuple_deconstruction() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("field_1_constr_fields"))
|
.apply(Term::var("field_1_constr_fields"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("idx")
|
.lambda("idx")
|
||||||
.apply(Term::un_i_data().apply(
|
.apply(Term::un_i_data().apply(
|
||||||
|
@ -2941,7 +2943,7 @@ fn when_tuple_deconstruction() {
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("field_1")),
|
.apply(Term::var("field_1")),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
Term::Error.delayed_trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("field_1")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("field_1")))
|
||||||
|
@ -3081,7 +3083,7 @@ fn generic_validator_type_test() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
Term::choose_unit(
|
Term::choose_unit(
|
||||||
Term::var("something"),
|
Term::var("something"),
|
||||||
|
@ -3097,7 +3099,7 @@ fn generic_validator_type_test() {
|
||||||
.apply(Term::head_list().apply(Term::var("B_fields"))),
|
.apply(Term::head_list().apply(Term::var("B_fields"))),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.delayed_if_else(Term::unit(), Term::Error),
|
.delayed_if_then_else(Term::unit(), Term::Error),
|
||||||
)
|
)
|
||||||
.lambda("B_fields")
|
.lambda("B_fields")
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("field_B")))
|
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("field_B")))
|
||||||
|
@ -3110,11 +3112,11 @@ fn generic_validator_type_test() {
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("r")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("r")))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error
|
Term::Error
|
||||||
.apply(Term::Error.force())
|
.apply(Term::Error.force())
|
||||||
.trace(Term::string("Validator returned false")),
|
.delayed_trace(Term::string("Validator returned false")),
|
||||||
)
|
)
|
||||||
.lambda("_")
|
.lambda("_")
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -3124,17 +3126,17 @@ fn generic_validator_type_test() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("r"))
|
.apply(Term::var("r"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(CONSTR_NOT_EMPTY)),
|
Term::Error.delayed_trace(Term::var(CONSTR_NOT_EMPTY)),
|
||||||
),
|
),
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("tail_1"))
|
.apply(Term::var("tail_1"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
|
@ -3142,7 +3144,8 @@ fn generic_validator_type_test() {
|
||||||
Term::var("__expect_B")
|
Term::var("__expect_B")
|
||||||
.apply(Term::var("field_B")),
|
.apply(Term::var("field_B")),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error
|
||||||
|
.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("field_B")
|
.lambda("field_B")
|
||||||
.apply(Term::head_list().apply(Term::var("tail_1")))
|
.apply(Term::head_list().apply(Term::var("tail_1")))
|
||||||
|
@ -3160,14 +3163,17 @@ fn generic_validator_type_test() {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.delayed_if_else(Term::unit(), Term::Error),
|
.delayed_if_then_else(
|
||||||
|
Term::unit(),
|
||||||
|
Term::Error,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
.lambda("r_fields")
|
.lambda("r_fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("r")),
|
.apply(Term::var("r")),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
Term::Error.delayed_trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
|
@ -3179,12 +3185,12 @@ fn generic_validator_type_test() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("B_fields"))
|
.apply(Term::var("B_fields"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("something")
|
.lambda("something")
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -3195,14 +3201,14 @@ fn generic_validator_type_test() {
|
||||||
Term::head_list().apply(Term::var("B_fields")),
|
Term::head_list().apply(Term::var("B_fields")),
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
.delayed_if_else(Term::unit(), Term::Error),
|
.delayed_if_then_else(Term::unit(), Term::Error),
|
||||||
)
|
)
|
||||||
.lambda("B_fields")
|
.lambda("B_fields")
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER)
|
Term::var(CONSTR_FIELDS_EXPOSER)
|
||||||
.apply(Term::var("field_B")),
|
.apply(Term::var("field_B")),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
Term::Error.delayed_trace(Term::var(CONSTR_INDEX_MISMATCH)),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("field_B")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("field_B")))
|
||||||
|
@ -3656,9 +3662,9 @@ fn list_fields_unwrap() {
|
||||||
vec![Data::bytestring(vec![170]), Data::integer(0.into())],
|
vec![Data::bytestring(vec![170]), Data::integer(0.into())],
|
||||||
)),
|
)),
|
||||||
]))
|
]))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
)
|
)
|
||||||
.constr_fields_exposer(),
|
.constr_fields_exposer(),
|
||||||
false,
|
false,
|
||||||
|
@ -3762,13 +3768,13 @@ fn foldl_type_mismatch() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var("mb_b_index"))
|
.apply(Term::var("mb_b_index"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_data()
|
Term::equals_data()
|
||||||
.apply(Term::head_list().apply(
|
.apply(Term::head_list().apply(
|
||||||
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("o")),
|
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("o")),
|
||||||
))
|
))
|
||||||
.apply(Term::var("addr1"))
|
.apply(Term::var("addr1"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::constr_data().apply(Term::integer(0.into())).apply(
|
Term::constr_data().apply(Term::integer(0.into())).apply(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(Term::var("o"))
|
.apply(Term::var("o"))
|
||||||
|
@ -3878,7 +3884,7 @@ fn expect_head_no_tail() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.apply(Term::var("h")),
|
.apply(Term::var("h")),
|
||||||
Term::Error.trace(Term::string(
|
Term::Error.delayed_trace(Term::string(
|
||||||
"List/Tuple/Constr contains more items than expected",
|
"List/Tuple/Constr contains more items than expected",
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -3912,19 +3918,19 @@ fn expect_head3_no_tail() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("i"))
|
.apply(Term::var("i"))
|
||||||
.apply(Term::var("i")),
|
.apply(Term::var("i")),
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
)
|
)
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("j"))
|
.apply(Term::var("j"))
|
||||||
.apply(Term::var("j")),
|
.apply(Term::var("j")),
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::string(
|
Term::Error.delayed_trace(Term::string(
|
||||||
"List/Tuple/Constr contains more items than expected",
|
"List/Tuple/Constr contains more items than expected",
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -3966,19 +3972,19 @@ fn expect_head3_cast_data_no_tail() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("i"))
|
.apply(Term::var("i"))
|
||||||
.apply(Term::var("i")),
|
.apply(Term::var("i")),
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
)
|
)
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("j"))
|
.apply(Term::var("j"))
|
||||||
.apply(Term::var("j")),
|
.apply(Term::var("j")),
|
||||||
Term::bool(false),
|
Term::bool(false),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::string(
|
Term::Error.delayed_trace(Term::string(
|
||||||
"List/Tuple/Constr contains more items than expected",
|
"List/Tuple/Constr contains more items than expected",
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -4024,7 +4030,7 @@ fn expect_head_cast_data_no_tail() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::var("h"))
|
.apply(Term::var("h"))
|
||||||
.apply(Term::var("h")),
|
.apply(Term::var("h")),
|
||||||
Term::Error.trace(Term::string(
|
Term::Error.delayed_trace(Term::string(
|
||||||
"List/Tuple/Constr contains more items than expected",
|
"List/Tuple/Constr contains more items than expected",
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -4163,7 +4169,7 @@ fn test_init_3() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
|
@ -4241,14 +4247,14 @@ fn list_clause_with_guard() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
Term::var("tail_2")
|
Term::var("tail_2")
|
||||||
.choose_list(
|
.choose_list(
|
||||||
Term::var("clause_guard")
|
Term::var("clause_guard")
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::i_data()
|
Term::i_data()
|
||||||
|
@ -4380,14 +4386,14 @@ fn list_clause_with_guard2() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.choose_list(
|
.choose_list(
|
||||||
Term::var("clause_guard")
|
Term::var("clause_guard")
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::empty_list().delay(),
|
Term::empty_list().delay(),
|
||||||
Term::var("clauses_delayed"),
|
Term::var("clauses_delayed"),
|
||||||
)
|
)
|
||||||
|
@ -4512,14 +4518,14 @@ fn list_clause_with_guard3() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::empty_list(),
|
Term::empty_list(),
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.choose_list(
|
.choose_list(
|
||||||
Term::var("clause_guard")
|
Term::var("clause_guard")
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::var("g").delay(),
|
Term::var("g").delay(),
|
||||||
Term::var("clauses_delayed"),
|
Term::var("clauses_delayed"),
|
||||||
)
|
)
|
||||||
|
@ -4651,14 +4657,14 @@ fn list_clause_with_assign() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::var("self"),
|
Term::var("self"),
|
||||||
Term::var("tail_2")
|
Term::var("tail_2")
|
||||||
.choose_list(
|
.choose_list(
|
||||||
Term::var("clause_guard")
|
Term::var("clause_guard")
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(
|
.apply(
|
||||||
Term::i_data()
|
Term::i_data()
|
||||||
|
@ -4797,7 +4803,7 @@ fn list_clause_with_assign2() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var("self")
|
Term::var("self")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::Error.trace(Term::string("unreachable")),
|
Term::Error.delayed_trace(Term::string("unreachable")),
|
||||||
Term::var("tail_1")
|
Term::var("tail_1")
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
Term::var("self"),
|
Term::var("self"),
|
||||||
|
@ -4809,7 +4815,7 @@ fn list_clause_with_assign2() {
|
||||||
Term::var(CONSTR_INDEX_EXPOSER)
|
Term::var(CONSTR_INDEX_EXPOSER)
|
||||||
.apply(Term::var("n")),
|
.apply(Term::var("n")),
|
||||||
)
|
)
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::mk_cons()
|
Term::mk_cons()
|
||||||
.apply(Term::var("n"))
|
.apply(Term::var("n"))
|
||||||
.apply(Term::empty_list())
|
.apply(Term::empty_list())
|
||||||
|
@ -4942,7 +4948,7 @@ fn opaque_value_in_datum() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::unmap_data().apply(Term::snd_pair().apply(Term::var("tuple_item_0"))),
|
Term::unmap_data().apply(Term::snd_pair().apply(Term::var("tuple_item_0"))),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("tuple_item_0")
|
.lambda("tuple_item_0")
|
||||||
.apply(Term::head_list().apply(Term::var("val")))
|
.apply(Term::head_list().apply(Term::var("val")))
|
||||||
|
@ -4955,18 +4961,18 @@ fn opaque_value_in_datum() {
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))),
|
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("dat"))),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::unit(),
|
Term::unit(),
|
||||||
Term::Error
|
Term::Error
|
||||||
.apply(Term::Error.force())
|
.apply(Term::Error.force())
|
||||||
.trace(Term::string("Validator returned false")),
|
.delayed_trace(Term::string("Validator returned false")),
|
||||||
)
|
)
|
||||||
.lambda("_")
|
.lambda("_")
|
||||||
.apply(
|
.apply(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var("subject"))
|
.apply(Term::var("subject"))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var("tail_1"))
|
.apply(Term::var("tail_1"))
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
|
@ -4996,7 +5002,7 @@ fn opaque_value_in_datum() {
|
||||||
.lambda("pair_outer"),
|
.lambda("pair_outer"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::var(TOO_MANY_ITEMS)),
|
Term::Error.delayed_trace(Term::var(TOO_MANY_ITEMS)),
|
||||||
)
|
)
|
||||||
.lambda("a")
|
.lambda("a")
|
||||||
.apply(
|
.apply(
|
||||||
|
@ -5012,7 +5018,9 @@ fn opaque_value_in_datum() {
|
||||||
)
|
)
|
||||||
.lambda("dat_fields")
|
.lambda("dat_fields")
|
||||||
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("param_0"))),
|
.apply(Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("param_0"))),
|
||||||
Term::Error.trace(Term::string("Constr index didn't match a type variant")),
|
Term::Error.delayed_trace(Term::string(
|
||||||
|
"Constr index didn't match a type variant",
|
||||||
|
)),
|
||||||
)
|
)
|
||||||
.lambda("subject")
|
.lambda("subject")
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("param_0")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("param_0")))
|
||||||
|
@ -5115,7 +5123,7 @@ fn opaque_value_in_test() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::unmap_data().apply(Term::snd_pair().apply(Term::var("tuple_item_0"))),
|
Term::unmap_data().apply(Term::snd_pair().apply(Term::var("tuple_item_0"))),
|
||||||
),
|
),
|
||||||
Term::Error.trace(Term::string(
|
Term::Error.delayed_trace(Term::string(
|
||||||
"List/Tuple/Constr contains more items than expected",
|
"List/Tuple/Constr contains more items than expected",
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -5171,9 +5179,9 @@ fn expect_none() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("x")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("x")))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::Error.trace(Term::string("Expected on incorrect Constr variant")),
|
Term::Error.delayed_trace(Term::string("Expected on incorrect Constr variant")),
|
||||||
)
|
)
|
||||||
.lambda("x")
|
.lambda("x")
|
||||||
.apply(Term::Constant(
|
.apply(Term::Constant(
|
||||||
|
@ -5223,24 +5231,24 @@ fn tuple_2_match() {
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")))
|
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")))
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_1")),
|
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_1")),
|
||||||
)
|
)
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(
|
.apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::var("x2"))
|
.apply(Term::var("x2"))
|
||||||
.apply(Term::var("x1")),
|
.apply(Term::var("x1")),
|
||||||
)
|
)
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(
|
.apply(
|
||||||
Term::sub_integer()
|
Term::subtract_integer()
|
||||||
.apply(Term::var("y2"))
|
.apply(Term::var("y2"))
|
||||||
.apply(Term::var("y1")),
|
.apply(Term::var("y1")),
|
||||||
)
|
)
|
||||||
|
@ -5324,14 +5332,17 @@ fn tuple_2_match() {
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")),
|
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")),
|
||||||
)
|
)
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(1.into()))
|
.apply(Term::integer(1.into()))
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_INDEX_EXPOSER)
|
Term::var(CONSTR_INDEX_EXPOSER)
|
||||||
.apply(Term::var("tuple_index_1")),
|
.apply(Term::var("tuple_index_1")),
|
||||||
)
|
)
|
||||||
.if_else(Term::bool(true).delay(), Term::var("clauses_delayed"))
|
.if_then_else(
|
||||||
|
Term::bool(true).delay(),
|
||||||
|
Term::var("clauses_delayed"),
|
||||||
|
)
|
||||||
.force()
|
.force()
|
||||||
.delay(),
|
.delay(),
|
||||||
Term::var("clauses_delayed"),
|
Term::var("clauses_delayed"),
|
||||||
|
@ -5345,14 +5356,14 @@ fn tuple_2_match() {
|
||||||
Term::var(CONSTR_INDEX_EXPOSER)
|
Term::var(CONSTR_INDEX_EXPOSER)
|
||||||
.apply(Term::var("tuple_index_0")),
|
.apply(Term::var("tuple_index_0")),
|
||||||
)
|
)
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::equals_integer()
|
Term::equals_integer()
|
||||||
.apply(Term::integer(0.into()))
|
.apply(Term::integer(0.into()))
|
||||||
.apply(
|
.apply(
|
||||||
Term::var(CONSTR_INDEX_EXPOSER)
|
Term::var(CONSTR_INDEX_EXPOSER)
|
||||||
.apply(Term::var("tuple_index_1")),
|
.apply(Term::var("tuple_index_1")),
|
||||||
)
|
)
|
||||||
.if_else(
|
.if_then_else(
|
||||||
Term::bool(false).delay(),
|
Term::bool(false).delay(),
|
||||||
Term::var("clauses_delayed"),
|
Term::var("clauses_delayed"),
|
||||||
)
|
)
|
||||||
|
@ -5382,9 +5393,9 @@ fn tuple_2_match() {
|
||||||
)
|
)
|
||||||
.apply(Term::data(Data::constr(1, vec![])))
|
.apply(Term::data(Data::constr(1, vec![])))
|
||||||
.apply(Term::data(Data::constr(1, vec![])))
|
.apply(Term::data(Data::constr(1, vec![])))
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::bool(true),
|
Term::bool(true),
|
||||||
Term::bool(true).if_else(Term::bool(false), Term::bool(true)),
|
Term::bool(true).if_then_else(Term::bool(false), Term::bool(true)),
|
||||||
)
|
)
|
||||||
.constr_index_exposer()
|
.constr_index_exposer()
|
||||||
.constr_fields_exposer(),
|
.constr_fields_exposer(),
|
||||||
|
|
|
@ -80,8 +80,6 @@ impl<T> Term<T> {
|
||||||
// Theses are in _alphabetical order_
|
// Theses are in _alphabetical order_
|
||||||
// The naming convention almost follows PascalCase -> snake_case
|
// The naming convention almost follows PascalCase -> snake_case
|
||||||
// Exceptions include the use of `un`.
|
// Exceptions include the use of `un`.
|
||||||
// FIXME: All cases of `bytearray` are "wrong" and should be `byte_string`
|
|
||||||
// FIXME: All missing cases are to be added as needed
|
|
||||||
|
|
||||||
pub fn add_integer() -> Self {
|
pub fn add_integer() -> Self {
|
||||||
Term::Builtin(DefaultFunction::AddInteger)
|
Term::Builtin(DefaultFunction::AddInteger)
|
||||||
|
@ -103,6 +101,24 @@ impl<T> Term<T> {
|
||||||
Term::Builtin(DefaultFunction::Blake2b_256)
|
Term::Builtin(DefaultFunction::Blake2b_256)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn choose_data(
|
||||||
|
self,
|
||||||
|
constr_case: Self,
|
||||||
|
map_case: Self,
|
||||||
|
array_case: Self,
|
||||||
|
int_case: Self,
|
||||||
|
bytes_case: Self,
|
||||||
|
) -> Self {
|
||||||
|
Term::Builtin(DefaultFunction::ChooseData)
|
||||||
|
.force()
|
||||||
|
.apply(self)
|
||||||
|
.apply(constr_case)
|
||||||
|
.apply(map_case)
|
||||||
|
.apply(array_case)
|
||||||
|
.apply(int_case)
|
||||||
|
.apply(bytes_case)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn choose_list(self, then_term: Self, else_term: Self) -> Self {
|
pub fn choose_list(self, then_term: Self, else_term: Self) -> Self {
|
||||||
Term::Builtin(DefaultFunction::ChooseList)
|
Term::Builtin(DefaultFunction::ChooseList)
|
||||||
.force()
|
.force()
|
||||||
|
@ -171,8 +187,7 @@ impl<T> Term<T> {
|
||||||
Term::Builtin(DefaultFunction::IData)
|
Term::Builtin(DefaultFunction::IData)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn if_else(self, then_term: Self, else_term: Self) -> Self {
|
pub fn if_then_else(self, then_term: Self, else_term: Self) -> Self {
|
||||||
// FIXME : rename if_then_else
|
|
||||||
Term::Builtin(DefaultFunction::IfThenElse)
|
Term::Builtin(DefaultFunction::IfThenElse)
|
||||||
.force()
|
.force()
|
||||||
.apply(self)
|
.apply(self)
|
||||||
|
@ -252,8 +267,7 @@ impl<T> Term<T> {
|
||||||
Term::Builtin(DefaultFunction::SndPair).force().force()
|
Term::Builtin(DefaultFunction::SndPair).force().force()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sub_integer() -> Self {
|
pub fn subtract_integer() -> Self {
|
||||||
// FIXME :: rename subtract_integer
|
|
||||||
Term::Builtin(DefaultFunction::SubtractInteger)
|
Term::Builtin(DefaultFunction::SubtractInteger)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,52 +306,22 @@ impl<T> Term<T> {
|
||||||
Term::Builtin(DefaultFunction::VerifySchnorrSecp256k1Signature)
|
Term::Builtin(DefaultFunction::VerifySchnorrSecp256k1Signature)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME : The following builders are missing
|
// Unused bultins
|
||||||
// pub fn null_list() -> Self {
|
pub fn mk_nil_data() -> Self {
|
||||||
// Term::Builtin(DefaultFunction::NullList)
|
Term::Builtin(DefaultFunction::MkNilData)
|
||||||
// }
|
}
|
||||||
// pub fn choose_data() -> Self {
|
pub fn mk_nil_pair_data() -> Self {
|
||||||
// Term::Builtin(DefaultFunction::ChooseData)
|
Term::Builtin(DefaultFunction::MkNilPairData)
|
||||||
// }
|
}
|
||||||
// pub fn serialise_data() -> Self {
|
pub fn null_list() -> Self {
|
||||||
// Term::Builtin(DefaultFunction::SerialiseData)
|
Term::Builtin(DefaultFunction::NullList)
|
||||||
// }
|
}
|
||||||
// pub fn mk_nil_data() -> Self {
|
pub fn serialise_data() -> Self {
|
||||||
// Term::Builtin(DefaultFunction::MkNilData)
|
Term::Builtin(DefaultFunction::SerialiseData)
|
||||||
// }
|
}
|
||||||
// pub fn mk_nil_pair_data() -> Self {
|
|
||||||
// Term::Builtin(DefaultFunction::MkNilPairData)
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Term<T> {
|
impl<T> Term<T> {
|
||||||
pub fn delayed_choose_list(self, then_term: Self, else_term: Self) -> Self {
|
|
||||||
Term::Builtin(DefaultFunction::ChooseList)
|
|
||||||
.force()
|
|
||||||
.force()
|
|
||||||
.apply(self)
|
|
||||||
.apply(then_term.delay())
|
|
||||||
.apply(else_term.delay())
|
|
||||||
.force()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn delayed_choose_unit(self, then_term: Self) -> Self {
|
|
||||||
Term::Builtin(DefaultFunction::ChooseUnit)
|
|
||||||
.force()
|
|
||||||
.apply(self)
|
|
||||||
.apply(then_term.delay())
|
|
||||||
.force()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn delayed_if_else(self, then_term: Self, else_term: Self) -> Self {
|
|
||||||
Term::Builtin(DefaultFunction::IfThenElse)
|
|
||||||
.force()
|
|
||||||
.apply(self)
|
|
||||||
.apply(then_term.delay())
|
|
||||||
.apply(else_term.delay())
|
|
||||||
.force()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn delayed_choose_data(
|
pub fn delayed_choose_data(
|
||||||
self,
|
self,
|
||||||
constr_case: Self,
|
constr_case: Self,
|
||||||
|
@ -357,7 +341,34 @@ impl<T> Term<T> {
|
||||||
.force()
|
.force()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn trace(self, msg_term: Self) -> Self {
|
pub fn delayed_choose_list(self, then_term: Self, else_term: Self) -> Self {
|
||||||
|
Term::Builtin(DefaultFunction::ChooseList)
|
||||||
|
.force()
|
||||||
|
.force()
|
||||||
|
.apply(self)
|
||||||
|
.apply(then_term.delay())
|
||||||
|
.apply(else_term.delay())
|
||||||
|
.force()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn delayed_choose_unit(self, then_term: Self) -> Self {
|
||||||
|
Term::Builtin(DefaultFunction::ChooseUnit)
|
||||||
|
.force()
|
||||||
|
.apply(self)
|
||||||
|
.apply(then_term.delay())
|
||||||
|
.force()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn delayed_if_then_else(self, then_term: Self, else_term: Self) -> Self {
|
||||||
|
Term::Builtin(DefaultFunction::IfThenElse)
|
||||||
|
.force()
|
||||||
|
.apply(self)
|
||||||
|
.apply(then_term.delay())
|
||||||
|
.apply(else_term.delay())
|
||||||
|
.force()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn delayed_trace(self, msg_term: Self) -> Self {
|
||||||
Term::Builtin(DefaultFunction::Trace)
|
Term::Builtin(DefaultFunction::Trace)
|
||||||
.force()
|
.force()
|
||||||
.apply(msg_term)
|
.apply(msg_term)
|
||||||
|
@ -365,6 +376,7 @@ impl<T> Term<T> {
|
||||||
.force()
|
.force()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Misc.
|
||||||
pub fn repeat_tail_list(self, repeat: usize) -> Self {
|
pub fn repeat_tail_list(self, repeat: usize) -> Self {
|
||||||
let mut term = self;
|
let mut term = self;
|
||||||
|
|
||||||
|
@ -388,6 +400,7 @@ impl Term<Name> {
|
||||||
Term::Var(Name::text(name).into())
|
Term::Var(Name::text(name).into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Misc.
|
||||||
pub fn constr_fields_exposer(self) -> Self {
|
pub fn constr_fields_exposer(self) -> Self {
|
||||||
self.lambda(CONSTR_FIELDS_EXPOSER).apply(
|
self.lambda(CONSTR_FIELDS_EXPOSER).apply(
|
||||||
Term::snd_pair()
|
Term::snd_pair()
|
||||||
|
|
|
@ -495,7 +495,7 @@ mod tests {
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
.into(),
|
.into(),
|
||||||
branches: vec![Term::Builtin(fun), Term::sub_integer()],
|
branches: vec![Term::Builtin(fun), Term::subtract_integer()],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -935,7 +935,7 @@ mod tests {
|
||||||
.apply(Term::integer(2.into()))
|
.apply(Term::integer(2.into()))
|
||||||
.apply(Term::var("y")),
|
.apply(Term::var("y")),
|
||||||
)
|
)
|
||||||
.delayed_if_else(
|
.delayed_if_then_else(
|
||||||
Term::length_of_bytearray().apply(Term::byte_string(vec![])),
|
Term::length_of_bytearray().apply(Term::byte_string(vec![])),
|
||||||
Term::Error,
|
Term::Error,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue