chore: fix list insertion order, function insertion order,
and Inner function issues with variant
This commit is contained in:
parent
0d0e698d5e
commit
2bce818110
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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: [] }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue