blob: 79ea2a35acdafa3971db752e146a088399d542db [file]
//@ run-pass
#![feature(reborrow)]
use std::marker::{Reborrow, PhantomData};
struct CustomMarker<'a>(PhantomData<&'a ()>);
impl<'a> Reborrow for CustomMarker<'a> {}
impl<'a> std::ops::Deref for CustomMarker<'a> {
type Target = CustomMarker<'a>;
fn deref(&self) -> &Self::Target {
self
}
}
impl<'a> std::ops::DerefMut for CustomMarker<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
self
}
}
fn main() {
let mut a = CustomMarker(PhantomData);
*a = CustomMarker(PhantomData);
}