title: Return reference with lifetime of self
body: <p>I'd like to write some code like the following:</p>
  
  <pre><code>struct Foo {
      foo: usize
  }
  
  impl Foo {
      pub fn get_foo&lt;'a&gt;(&amp;'a self) -&gt; &amp;'self usize {
          &amp;self.foo
      }
  }
  </code></pre>
  
  <p>But this doesn't work, failing with <code>invalid lifetime name: 'self is no longer a special lifetime</code>.</p>
  
  <p>How can I return a reference that lives as long as the object itself?</p>