Refactor function signatures to use slices

This commit is contained in:
Michael Schimmel
2026-03-03 18:13:20 +01:00
parent 7c38dee243
commit 8c4db9a5ba
12 changed files with 262 additions and 209 deletions
+7 -7
View File
@@ -88,7 +88,7 @@ impl Optimizer {
if let Some(val) = sub.get_value(&addr)
&& inliner.is_inlinable_value(val, addr)
{
return Rc::new(folder.make_constant_node(val.clone(), &node));
return Rc::new(folder.make_constant_node(val.clone(), node));
}
// 2. Try inlining from AST substitution map (pure expressions)
@@ -104,7 +104,7 @@ impl Optimizer {
if let Some(val) = globals.get(idx.0 as usize)
&& inliner.is_inlinable_value(val, addr)
{
return Rc::new(folder.make_constant_node(val.clone(), &node));
return Rc::new(folder.make_constant_node(val.clone(), node));
}
}
}
@@ -128,7 +128,7 @@ impl Optimizer {
if let BoundKind::Constant(Value::Record(layout, values)) = &rec_opt.kind
&& let Some(idx) = layout.index_of(*field)
{
return Rc::new(folder.make_constant_node(values[idx].clone(), &node));
return Rc::new(folder.make_constant_node(values[idx].clone(), node));
}
if Rc::ptr_eq(&rec_opt, rec) {
@@ -395,7 +395,7 @@ impl Optimizer {
} else if let Some(else_node) = else_br {
return self.visit_node(else_node.clone(), sub, path);
} else {
return Rc::new(folder.make_nop_node(&node));
return Rc::new(folder.make_nop_node(node));
}
}
@@ -517,7 +517,7 @@ impl Optimizer {
if self.enabled {
if new_exprs.is_empty() {
return Rc::new(folder.make_nop_node(&node));
return Rc::new(folder.make_nop_node(node));
} else if new_exprs.len() == 1 {
return new_exprs.pop().unwrap();
}
@@ -533,7 +533,7 @@ impl Optimizer {
positional_count,
} => {
let mut info = UsageInfo::default();
info.collect(&node);
info.collect(node);
let mut new_upvalues = Vec::new();
let mut mapping = Vec::new();
@@ -643,7 +643,7 @@ impl Optimizer {
}
if self.enabled
&& let Some(folded) = folder.try_fold_record(layout, &mapped_values, &node)
&& let Some(folded) = folder.try_fold_record(layout, &mapped_values, node)
{
return Rc::new(folded);
}