scope is now properly handled in expect cases
This commit is contained in:
parent
d8ff9e23a4
commit
b7fa57027a
|
@ -714,21 +714,28 @@ impl<'a> CodeGenerator<'a> {
|
||||||
*clause_properties.is_complex_clause() = true;
|
*clause_properties.is_complex_clause() = true;
|
||||||
let clause_guard_name = format!("__clause_guard_{}", self.id_gen.next());
|
let clause_guard_name = format!("__clause_guard_{}", self.id_gen.next());
|
||||||
|
|
||||||
|
let mut clause_guard_scope = scope.clone();
|
||||||
|
clause_guard_scope.push(self.id_gen.next());
|
||||||
|
|
||||||
clause_guard_vec.push(Air::Let {
|
clause_guard_vec.push(Air::Let {
|
||||||
scope: scope.clone(),
|
scope: clause_guard_scope.clone(),
|
||||||
name: clause_guard_name.clone(),
|
name: clause_guard_name.clone(),
|
||||||
});
|
});
|
||||||
|
|
||||||
handle_clause_guard(clause_guard, &mut clause_guard_vec, scope.clone());
|
handle_clause_guard(
|
||||||
|
clause_guard,
|
||||||
|
&mut clause_guard_vec,
|
||||||
|
clause_guard_scope.clone(),
|
||||||
|
);
|
||||||
|
|
||||||
clause_guard_vec.push(Air::ClauseGuard {
|
clause_guard_vec.push(Air::ClauseGuard {
|
||||||
scope: scope.clone(),
|
scope: clause_guard_scope.clone(),
|
||||||
subject_name: clause_guard_name,
|
subject_name: clause_guard_name,
|
||||||
tipo: bool(),
|
tipo: bool(),
|
||||||
});
|
});
|
||||||
|
|
||||||
clause_guard_vec.push(Air::Bool {
|
clause_guard_vec.push(Air::Bool {
|
||||||
scope: scope.clone(),
|
scope: clause_guard_scope.clone(),
|
||||||
value: true,
|
value: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1875,6 +1882,9 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
pattern_vec.append(values);
|
pattern_vec.append(values);
|
||||||
|
|
||||||
|
let mut scope = scope;
|
||||||
|
scope.push(self.id_gen.next());
|
||||||
|
|
||||||
pattern_vec.push(Air::AssertConstr {
|
pattern_vec.push(Air::AssertConstr {
|
||||||
scope: scope.clone(),
|
scope: scope.clone(),
|
||||||
constr_index: index,
|
constr_index: index,
|
||||||
|
@ -2125,6 +2135,9 @@ impl<'a> CodeGenerator<'a> {
|
||||||
|
|
||||||
pattern_vec.append(value_vec);
|
pattern_vec.append(value_vec);
|
||||||
|
|
||||||
|
let mut scope = scope;
|
||||||
|
scope.push(self.id_gen.next());
|
||||||
|
|
||||||
pattern_vec.push(Air::AssertConstr {
|
pattern_vec.push(Air::AssertConstr {
|
||||||
scope: scope.clone(),
|
scope: scope.clone(),
|
||||||
constr_index: index,
|
constr_index: index,
|
||||||
|
|
Loading…
Reference in New Issue