Guest User

Untitled

a guest
Jul 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.46 KB | None | 0 0
  1. //#![feature(nll)]
  2.  
  3. use std::marker::PhantomData;
  4.  
  5. struct Handler<'a> {
  6. _marker: PhantomData<&'a u32>,
  7. }
  8.  
  9. impl<'a> Handler<'a> {
  10. pub fn on_change<T>(&self, data: &'a mut T)
  11. where T: 'a,
  12. {
  13. println!("{:?}", data as *mut _)
  14. }
  15. }
  16.  
  17. fn main() {
  18. //let mut foo = 1; // this line should be valid
  19. let handler = Handler { _marker: PhantomData };
  20. {
  21. let mut foo = 1; // this line should be illegal
  22. handler.on_change(&mut foo);
  23. }
  24. }
Add Comment
Please, Sign In to add comment