// run-pass
// Test that `&T` and `&mut T` implement `Deref<T>`


use std::ops::Deref;

fn deref<U:Copy,T:Deref<Target=U>>(t: T) -> U {
    *t
}

fn main() {
    let x: isize = 3;
    let y = deref(&x);
    assert_eq!(y, 3);

    let mut x: isize = 4;
    let y = deref(&mut x);
    assert_eq!(y, 4);
}
