pub struct DepTask<'graph> {
data: &'graph DepGraphThreadData,
- key: DepNode<DefId>,
+ key: Option<DepNode<DefId>>,
}
impl<'graph> DepTask<'graph> {
pub fn new(data: &'graph DepGraphThreadData, key: DepNode<DefId>)
-> DepTask<'graph> {
data.enqueue(DepMessage::PushTask(key.clone()));
- DepTask { data: data, key: key }
+ DepTask { data: data, key: Some(key) }
}
}
impl<'graph> Drop for DepTask<'graph> {
fn drop(&mut self) {
- self.data.enqueue(DepMessage::PopTask(self.key.clone()));
+ self.data.enqueue(DepMessage::PopTask(self.key.take().unwrap()));
}
}