| //@ pp-exact |
| |
| #![feature(pin_ergonomics)] |
| #![allow(dead_code, incomplete_features)] |
| |
| use std::pin::Pin; |
| |
| struct Foo; |
| |
| impl Foo { |
| fn baz(&pin mut self) {} |
| |
| fn baz_const(&pin const self) {} |
| |
| fn baz_lt<'a>(&'a pin mut self) {} |
| |
| fn baz_const_lt(&'_ pin const self) {} |
| } |
| |
| fn foo(_: &pin mut Foo) {} |
| fn foo_lt<'a>(_: &'a pin mut Foo) {} |
| |
| fn foo_const(_: &pin const Foo) {} |
| fn foo_const_lt(_: &'_ pin const Foo) {} |
| |
| fn bar() { |
| let mut x: Pin<&mut _> = &pin mut Foo; |
| foo(x.as_mut()); |
| foo(x.as_mut()); |
| foo_const(x); |
| |
| let x: Pin<&_> = &pin const Foo; |
| foo_const(x); |
| foo_const(x); |
| } |
| |
| fn main() {} |