chore: fix list insertion order, function insertion order,

and Inner function issues with variant
This commit is contained in:
Kasey White 2022-12-16 04:31:58 -05:00 committed by Lucas
parent 0d0e698d5e
commit 2bce818110
3 changed files with 7 additions and 4 deletions

View File

@ -1173,10 +1173,12 @@ pub fn monomorphize(
} }
if let Type::Fn { args, .. } = &**full_type { if let Type::Fn { args, .. } = &**full_type {
if full_type.is_generic() {
for arg in args { for arg in args {
get_variant_name(&mut new_name, arg); get_variant_name(&mut new_name, arg);
} }
} }
}
(new_name, new_air) (new_name, new_air)
} }

View File

@ -1576,7 +1576,7 @@ impl<'a> CodeGenerator<'a> {
variant_name: function_access_key.variant_name.clone(), variant_name: function_access_key.variant_name.clone(),
}); });
for (index, ir) in func_comp.ir.clone().iter().enumerate() { for (index, ir) in func_comp.ir.clone().iter().enumerate().rev() {
match_ir_for_recursion( match_ir_for_recursion(
ir.clone(), ir.clone(),
&mut insert_var_vec, &mut insert_var_vec,
@ -2182,7 +2182,7 @@ impl<'a> CodeGenerator<'a> {
Term::Constant(UplcConstant::ProtoList(UplcType::Data, vec![])) Term::Constant(UplcConstant::ProtoList(UplcType::Data, vec![]))
}; };
for arg in args { for arg in args.into_iter().rev() {
let list_item = if tipo.is_map() { let list_item = if tipo.is_map() {
arg arg
} else { } else {

View File

@ -6,6 +6,7 @@ pub fn new() {
Map { inner: [] } Map { inner: [] }
} }
// Seems to be an issue with the parser. The TypedExpr body is excluding the Equal binop.
test new_1() { test new_1() {
new() == Map { inner: [] } new() == Map { inner: [] }
} }