Detect when fields_expose is unnecessary in clause_pattern

This commit is contained in:
microproofs 2023-10-07 13:19:33 -04:00 committed by Kasey
parent 9335522df4
commit 44021cde19
2 changed files with 4 additions and 23 deletions

View File

@ -2242,6 +2242,8 @@ impl<'a> CodeGenerator<'a> {
subject_tipo.clone(), subject_tipo.clone(),
), ),
) )
} else if indices.iter().all(|s| s.1 == "_") {
AirTree::no_op()
} else { } else {
AirTree::fields_expose( AirTree::fields_expose(
indices, indices,

View File

@ -4824,13 +4824,6 @@ fn list_clause_with_assign2() {
Term::mk_cons() Term::mk_cons()
.apply(Term::var("n")) .apply(Term::var("n"))
.apply(Term::empty_list()) .apply(Term::empty_list())
.lambda("_")
.apply(
Term::var(
CONSTR_FIELDS_EXPOSER,
)
.apply(Term::var("n")),
)
.delay(), .delay(),
Term::var("clauses_delayed"), Term::var("clauses_delayed"),
) )
@ -5374,13 +5367,7 @@ fn tuple_2_match() {
.apply(Term::var("tuple_index_1")), .apply(Term::var("tuple_index_1")),
) )
.if_else( .if_else(
Term::bool(false) Term::bool(false).delay(),
.lambda("_")
.apply(
Term::var(CONSTR_FIELDS_EXPOSER)
.apply(Term::var("tuple_index_1")),
)
.delay(),
Term::var("clauses_delayed"), Term::var("clauses_delayed"),
) )
.force() .force()
@ -5389,15 +5376,7 @@ fn tuple_2_match() {
) )
.force() .force()
.lambda("clauses_delayed") .lambda("clauses_delayed")
.apply( .apply(Term::bool(false).delay())
Term::bool(false)
.lambda("_")
.apply(
Term::var(CONSTR_FIELDS_EXPOSER)
.apply(Term::var("tuple_index_0")),
)
.delay(),
)
.delay(), .delay(),
) )
.delay(), .delay(),