Why can I not borrow &mut x
multiple times when using is_mut_t
. But it’s fine with is_mut_specific
?
#[cfg(test)]
mod test {
use std::marker::PhantomData;
#[test]
fn test_wc() {
struct Test<T>{ phantom_data: PhantomData<T>}
impl <T> Test<T> {
fn new() -> Self {
Test { phantom_data: PhantomData }
}
fn is_mut_t(&mut self, i: T) {}
fn is_mut_specific(&mut self, i: &mut i32) {}
}
let mut x = 5;
let mut t: Test<&mut i32> = Test::new();
t.is_mut_specific(&mut x);
t.is_mut_specific(&mut x);
// t.is_mut_t(&mut x);
// t.is_mut_t(&mut x);
}
}