title: No method named `poll` found for a type that implements `Future`
body: <p>I am attempting to create a struct that will allow someone to call <code>.shutdown()</code>, which will resolve a future (that is otherwise pending). It can only be called once. In the implementation of the <code>Future</code> trait, I receive an error that <code>poll</code> is not defined, despite it being present in <a href="https://docs.rs/futures-preview/0.3.0-alpha.17/futures/channel/oneshot/struct.Receiver.html#implementations" rel="noreferrer">the documentation</a> (under <code>impl Future</code>).</p>
  
  <p>Though I am using <code>std::future::Future</code> as the <code>impl</code>, I tried adding <code>use futures::prelude::*</code>, which would bring the preview trait into scope. Both RLS and rustc inform me that the import is unused, so that's not the issue.</p>
  
  <p>Note that I am <em>not</em> using a simple boolean flag, as I intend for this to be able to be callable from any thread — that's an implementation detail that is irrelevant here.</p>
  
  <pre class="lang-rust prettyprint-override"><code>use futures::channel::oneshot; // futures-preview@0.3.0-alpha.17
  use std::{
      future::Future,
      pin::Pin,
      task::{Context, Poll},
  };
  
  pub struct ShutdownHandle {
      sender: oneshot::Sender&lt;()&gt;,
      receiver: oneshot::Receiver&lt;()&gt;,
  }
  
  impl ShutdownHandle {
      pub fn new() -&gt; Self {
          let (sender, receiver) = oneshot::channel();
          Self { sender, receiver }
      }
  
      pub fn shutdown(self) -&gt; Result&lt;(), ()&gt; {
          self.sender.send(())
      }
  }
  
  impl Future for ShutdownHandle {
      type Output = ();
  
      fn poll(self: Pin&lt;&amp;mut Self&gt;, cx: &amp;mut Context) -&gt; Poll&lt;Self::Output&gt; {
          self.receiver.poll(&amp;mut cx).map(|_| ())
      }
  }
  
  fn main() {
      let runner = ShutdownHandle::new();
      assert!(runner.shutdown().is_ok());
  }
  </code></pre>
  
  <p>I receive the following error:</p>
  
  <pre class="lang-none prettyprint-override"><code>error[E0599]: no method named `poll` found for type `futures_channel::oneshot::Receiver&lt;()&gt;` in the current scope
    --&gt; src/main.rs:28:23
     |
  28 |         self.receiver.poll(&amp;mut cx).map(|_| ())
     |                       ^^^^
  </code></pre>
  
  <p>What am I missing? Surely there's some way to "pass through" the polling. I am using nightly (2019-07-18).</p>