| //@ check-pass | |
| #![feature(pin_ergonomics)] | |
| #![allow(incomplete_features)] | |
| use std::pin::Pin; | |
| pub struct Foo; | |
| impl Foo { | |
| fn foo(self: Pin<&mut Self>) { | |
| } | |
| fn baz(self: Pin<&Self>) { | |
| } | |
| } | |
| pub fn bar(x: Pin<&mut Foo>) { | |
| x.foo(); | |
| x.foo(); // for this to work we need to automatically reborrow, | |
| // as if the user had written `x.as_mut().foo()`. | |
| Foo::baz(x); | |
| x.baz(); | |
| } | |
| pub fn baaz(x: Pin<&Foo>) { | |
| x.baz(); | |
| x.baz(); | |
| } | |
| fn main() {} |