Clippy fix
This commit is contained in:
parent
463b88413e
commit
f0fc7b4d5f
|
@ -2711,7 +2711,7 @@ impl<'a> CodeGenerator<'a> {
|
|||
air_args.into_iter().map(|i| i.1).collect_vec(),
|
||||
);
|
||||
|
||||
self.handle_assigns(subject_name, subject_tipo, &args, &mut stick_set, then)
|
||||
handle_assigns(subject_name, subject_tipo, &args, &mut stick_set, then)
|
||||
}
|
||||
DecisionTree::HoistThen {
|
||||
name,
|
||||
|
@ -2750,57 +2750,6 @@ impl<'a> CodeGenerator<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
fn handle_assigns(
|
||||
&mut self,
|
||||
subject_name: &String,
|
||||
subject_tipo: Rc<Type>,
|
||||
assigns: &[Assigned],
|
||||
stick_set: &mut TreeSet,
|
||||
then: AirTree,
|
||||
) -> AirTree {
|
||||
match assigns {
|
||||
[] => then,
|
||||
[assign, rest @ ..] => {
|
||||
let Assigned { path, assigned } = assign;
|
||||
|
||||
let current_tipo = get_tipo_by_path(subject_tipo.clone(), path);
|
||||
let builtins_path = Builtins::new_from_path(subject_tipo.clone(), path.clone());
|
||||
let current_subject_name = if builtins_path.is_empty() {
|
||||
subject_name.clone()
|
||||
} else {
|
||||
format!("{}_{}", subject_name, builtins_path)
|
||||
};
|
||||
|
||||
// Transition process from previous to current
|
||||
let builtins_to_add = stick_set.diff_union_builtins(builtins_path.clone());
|
||||
|
||||
// Previous path to apply the transition process too
|
||||
let prev_builtins = Builtins {
|
||||
vec: builtins_path.vec[0..(builtins_path.len() - builtins_to_add.len())]
|
||||
.to_vec(),
|
||||
};
|
||||
|
||||
let prev_subject_name = if prev_builtins.is_empty() {
|
||||
subject_name.clone()
|
||||
} else {
|
||||
format!("{}_{}", subject_name, prev_builtins)
|
||||
};
|
||||
let prev_tipo = prev_builtins
|
||||
.vec
|
||||
.last()
|
||||
.map_or(subject_tipo.clone(), |last| last.tipo());
|
||||
|
||||
let assignment = AirTree::let_assignment(
|
||||
assigned,
|
||||
AirTree::local_var(current_subject_name, current_tipo),
|
||||
self.handle_assigns(subject_name, subject_tipo, rest, stick_set, then),
|
||||
);
|
||||
|
||||
builtins_to_add.produce_air(prev_subject_name, prev_tipo, assignment)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn hoist_functions_to_validator(&mut self, mut air_tree: AirTree) -> AirTree {
|
||||
let mut functions_to_hoist = IndexMap::new();
|
||||
let mut used_functions = vec![];
|
||||
|
@ -5273,3 +5222,52 @@ impl<'a> CodeGenerator<'a> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn handle_assigns(
|
||||
subject_name: &String,
|
||||
subject_tipo: Rc<Type>,
|
||||
assigns: &[Assigned],
|
||||
stick_set: &mut TreeSet,
|
||||
then: AirTree,
|
||||
) -> AirTree {
|
||||
match assigns {
|
||||
[] => then,
|
||||
[assign, rest @ ..] => {
|
||||
let Assigned { path, assigned } = assign;
|
||||
|
||||
let current_tipo = get_tipo_by_path(subject_tipo.clone(), path);
|
||||
let builtins_path = Builtins::new_from_path(subject_tipo.clone(), path.clone());
|
||||
let current_subject_name = if builtins_path.is_empty() {
|
||||
subject_name.clone()
|
||||
} else {
|
||||
format!("{}_{}", subject_name, builtins_path)
|
||||
};
|
||||
|
||||
// Transition process from previous to current
|
||||
let builtins_to_add = stick_set.diff_union_builtins(builtins_path.clone());
|
||||
|
||||
// Previous path to apply the transition process too
|
||||
let prev_builtins = Builtins {
|
||||
vec: builtins_path.vec[0..(builtins_path.len() - builtins_to_add.len())].to_vec(),
|
||||
};
|
||||
|
||||
let prev_subject_name = if prev_builtins.is_empty() {
|
||||
subject_name.clone()
|
||||
} else {
|
||||
format!("{}_{}", subject_name, prev_builtins)
|
||||
};
|
||||
let prev_tipo = prev_builtins
|
||||
.vec
|
||||
.last()
|
||||
.map_or(subject_tipo.clone(), |last| last.tipo());
|
||||
|
||||
let assignment = AirTree::let_assignment(
|
||||
assigned,
|
||||
AirTree::local_var(current_subject_name, current_tipo),
|
||||
handle_assigns(subject_name, subject_tipo, rest, stick_set, then),
|
||||
);
|
||||
|
||||
builtins_to_add.produce_air(prev_subject_name, prev_tipo, assignment)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue