Skip to content

Commit

Permalink
minor fix and some refactoring on the if statements
Browse files Browse the repository at this point in the history
  • Loading branch information
MicroProofs committed Jan 22, 2024
1 parent 9e555ef commit d9b58bd
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 27 deletions.
20 changes: 10 additions & 10 deletions crates/aiken-lang/src/gen_uplc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1506,8 +1506,8 @@ impl<'a> CodeGenerator<'a> {
vec![fst_name.clone(), snd_name.clone()],
tipo.clone(),
AirTree::local_var(pair_name, tipo.clone()),
None,
false,
msg_func.clone(),
msg_func.is_some(),
);

let expect_fst = self.expect_type_assign(
Expand Down Expand Up @@ -5223,33 +5223,33 @@ impl<'a> CodeGenerator<'a> {
if names[1] != "_" {
term = term
.lambda(names[1].clone())
.apply(if error_term != Term::Error {
builder::convert_data_to_type_debug(
.apply(if error_term == Term::Error {
builder::convert_data_to_type(
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
&inner_types[1],
error_term.clone(),
)
} else {
builder::convert_data_to_type(
builder::convert_data_to_type_debug(
Term::snd_pair().apply(Term::var(format!("__tuple_{list_id}"))),
&inner_types[1],
error_term.clone(),
)
});
}

if names[0] != "_" {
term = term
.lambda(names[0].clone())
.apply(if error_term != Term::Error {
builder::convert_data_to_type_debug(
.apply(if error_term == Term::Error {
builder::convert_data_to_type(
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
&inner_types[0],
error_term,
)
} else {
builder::convert_data_to_type(
builder::convert_data_to_type_debug(
Term::fst_pair().apply(Term::var(format!("__tuple_{list_id}"))),
&inner_types[0],
error_term,
)
})
}
Expand Down
30 changes: 13 additions & 17 deletions crates/aiken-lang/src/gen_uplc/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1585,33 +1585,34 @@ pub fn list_access_to_uplc(
// case for no tail
// 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()
.apply(Term::var(tail_name.to_string()))
.delayed_choose_list(acc, error_term.clone())
.lambda(name)
.apply(head_list)
.lambda(tail_name)
} else {
acc.lambda(name).apply(head_list).lambda(tail_name)
}
} else if name == "_" {
if matches!(expect_level, ExpectLevel::Full | ExpectLevel::Items)
&& error_term != Term::Error
{
if matches!(expect_level, ExpectLevel::None) || 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())
.delayed_choose_list(
error_term.clone(),
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string()))),
)
.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)
&& error_term != Term::Error
{
} else if matches!(expect_level, ExpectLevel::None) || 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())
.delayed_choose_list(
error_term.clone(),
Expand All @@ -1620,11 +1621,6 @@ pub fn list_access_to_uplc(
.apply(head_list),
)
.lambda(tail_name)
} else {
acc.apply(Term::tail_list().apply(Term::var(tail_name.to_string())))
.lambda(name)
.apply(head_list)
.lambda(tail_name)
}
},
)
Expand Down

0 comments on commit d9b58bd

Please sign in to comment.