updated VarStore without cloning

This commit is contained in:
Anton-4 2021-06-26 13:50:56 +02:00
parent 2aa412f836
commit 38db75614e
2 changed files with 8 additions and 5 deletions

View File

@ -52,7 +52,7 @@ impl fmt::Debug for Subs {
}
}
#[derive(Debug, Copy, Clone)]
#[derive(Debug)]
pub struct VarStore {
next: u32,
}

View File

@ -242,18 +242,21 @@ impl<'a> EdModel<'a> {
Region::zero(),
);
// extract the var_store out of the env again
//let mut var_store = VarStore::default();
//std::mem::swap(self.module.env.var_store, &mut var_store);
// extract the var_store out of the env
let mut var_store = VarStore::default();
std::mem::swap(self.module.env.var_store, &mut var_store);
let (mut solved, _, _) = EdModel::run_solve(
self.module.env.pool,
Default::default(),
Default::default(),
constrained,
*self.module.env.var_store,
var_store,
);
// put the updated var_store back in env
std::mem::swap( &mut VarStore::new_from_subs(solved.inner()), self.module.env.var_store);
let subs = solved.inner_mut();
let content = subs.get(var).content;