unsafe impl<'r, 'a, 'aa, A> IsMutToken<'r> for &'aa mut A
where A: IsMutToken<'a>, 'a: 'r, 'aa: 'r {}
-/*impl Deref for
- type Target = NoAlias<'a>;
- fn deref(
-} */
-
-
#[derive(Debug, Clone, Copy)]
pub struct RefToken<'a>(
PhantomData<&'a NoAliasSingleton>,
}
pub fn pop_front(&mut self) -> Option<T> {
- let mut noalias = self.noalias.mut_token();
- let tok = &mut noalias;
+ let tok = self.noalias.mut_token();
Self::pop_front_inner(
- noalias,
+ tok,
&mut self.head,
&mut self.tail,
)
}
// We wouldn't do this, since it's daft, but
- // it lets us demonstrate passing a NoAlias.
+ // it lets us demonstrate passing a token.
fn pop_front_inner<'a>(
mut tok: MutToken<'a>,
head: &mut Option<Ptr<Node<T>>>,