minor fix and some refactoring on the if statements
This commit is contained in:
parent
82fc82ceee
commit
eda4e259d6
|
@ -1506,8 +1506,8 @@ impl<'a> CodeGenerator<'a> {
|
||||||
vec![fst_name.clone(), snd_name.clone()],
|
vec![fst_name.clone(), snd_name.clone()],
|
||||||
tipo.clone(),
|
tipo.clone(),
|
||||||
AirTree::local_var(pair_name, tipo.clone()),
|
AirTree::local_var(pair_name, tipo.clone()),
|
||||||
None,
|
msg_func.clone(),
|
||||||
false,
|
msg_func.is_some(),
|
||||||
);
|
);
|
||||||
|
|
||||||
let expect_fst = self.expect_type_assign(
|
let expect_fst = self.expect_type_assign(
|
||||||
|
@ -5223,34 +5223,34 @@ impl<'a> CodeGenerator<'a> {
|
||||||
if names[1] != "_" {
|
if names[1] != "_" {
|
||||||
term = term
|
term = term
|
||||||
.lambda(names[1].clone())
|
.lambda(names[1].clone())
|
||||||
.apply(if error_term != Term::Error {
|
.apply(if error_term == Term::Error {
|
||||||
|
builder::convert_data_to_type(
|
||||||
|
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
||||||
|
&inner_types[1],
|
||||||
|
)
|
||||||
|
} else {
|
||||||
builder::convert_data_to_type_debug(
|
builder::convert_data_to_type_debug(
|
||||||
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
||||||
&inner_types[1],
|
&inner_types[1],
|
||||||
error_term.clone(),
|
error_term.clone(),
|
||||||
)
|
)
|
||||||
} else {
|
|
||||||
builder::convert_data_to_type(
|
|
||||||
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
|
||||||
&inner_types[1],
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if names[0] != "_" {
|
if names[0] != "_" {
|
||||||
term = term
|
term = term
|
||||||
.lambda(names[0].clone())
|
.lambda(names[0].clone())
|
||||||
.apply(if error_term != Term::Error {
|
.apply(if error_term == Term::Error {
|
||||||
|
builder::convert_data_to_type(
|
||||||
|
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
||||||
|
&inner_types[0],
|
||||||
|
)
|
||||||
|
} else {
|
||||||
builder::convert_data_to_type_debug(
|
builder::convert_data_to_type_debug(
|
||||||
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
||||||
&inner_types[0],
|
&inner_types[0],
|
||||||
error_term,
|
error_term,
|
||||||
)
|
)
|
||||||
} else {
|
|
||||||
builder::convert_data_to_type(
|
|
||||||
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
|
|
||||||
&inner_types[0],
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1585,33 +1585,34 @@ pub fn list_access_to_uplc(
|
||||||
// case for no tail
|
// case for no tail
|
||||||
// name is guaranteed to not be discard at this point
|
// name is guaranteed to not be discard at this point
|
||||||
|
|
||||||
if matches!(expect_level, ExpectLevel::Full | ExpectLevel::Items) {
|
if matches!(expect_level, ExpectLevel::None) {
|
||||||
|
acc.lambda(name).apply(head_list).lambda(tail_name)
|
||||||
|
} else {
|
||||||
Term::tail_list()
|
Term::tail_list()
|
||||||
.apply(Term::var(tail_name.to_string()))
|
.apply(Term::var(tail_name.to_string()))
|
||||||
.delayed_choose_list(acc, error_term.clone())
|
.delayed_choose_list(acc, error_term.clone())
|
||||||
.lambda(name)
|
.lambda(name)
|
||||||
.apply(head_list)
|
.apply(head_list)
|
||||||
.lambda(tail_name)
|
.lambda(tail_name)
|
||||||
} else {
|
|
||||||
acc.lambda(name).apply(head_list).lambda(tail_name)
|
|
||||||
}
|
}
|
||||||
} else if name == "_" {
|
} else if name == "_" {
|
||||||
if matches!(expect_level, ExpectLevel::Full | ExpectLevel::Items)
|
if matches!(expect_level, ExpectLevel::None) || error_term == Term::Error {
|
||||||
&& error_term != Term::Error
|
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string())))
|
||||||
{
|
.lambda(tail_name)
|
||||||
|
} else {
|
||||||
Term::var(tail_name.to_string())
|
Term::var(tail_name.to_string())
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
error_term.clone(),
|
error_term.clone(),
|
||||||
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string()))),
|
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string()))),
|
||||||
)
|
)
|
||||||
.lambda(tail_name)
|
.lambda(tail_name)
|
||||||
} else {
|
|
||||||
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string())))
|
|
||||||
.lambda(tail_name)
|
|
||||||
}
|
}
|
||||||
} else if matches!(expect_level, ExpectLevel::Full | ExpectLevel::Items)
|
} else if matches!(expect_level, ExpectLevel::None) || error_term == Term::Error {
|
||||||
&& error_term != Term::Error
|
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string())))
|
||||||
{
|
.lambda(name)
|
||||||
|
.apply(head_list)
|
||||||
|
.lambda(tail_name)
|
||||||
|
} else {
|
||||||
Term::var(tail_name.to_string())
|
Term::var(tail_name.to_string())
|
||||||
.delayed_choose_list(
|
.delayed_choose_list(
|
||||||
error_term.clone(),
|
error_term.clone(),
|
||||||
|
@ -1620,11 +1621,6 @@ pub fn list_access_to_uplc(
|
||||||
.apply(head_list),
|
.apply(head_list),
|
||||||
)
|
)
|
||||||
.lambda(tail_name)
|
.lambda(tail_name)
|
||||||
} else {
|
|
||||||
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string())))
|
|
||||||
.lambda(name)
|
|
||||||
.apply(head_list)
|
|
||||||
.lambda(tail_name)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue