title: Why am I getting "unused Result which must be used ... Result may be an Err variant, which should be handled" even though I am handling it?
body: <pre><code>fn main() {
      foo().map_err(|err| println!("{:?}", err));
  }
  
  fn foo() -&gt; Result&lt;(), std::io::Error&gt; {
      Ok(())
  }
  </code></pre>
  
  <p>results:</p>
  
  <pre class="lang-none prettyprint-override"><code>warning: unused `std::result::Result` that must be used
   --&gt; src/main.rs:2:5
    |
  2 |     foo().map_err(|err| println!("{:?}", err));
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: #[warn(unused_must_use)] on by default
    = note: this `Result` may be an `Err` variant, which should be handled
  
      Finished dev [unoptimized + debuginfo] target(s) in 0.58s
       Running `target/debug/playground`
  </code></pre>
  
  <p><a href="https://play.rust-lang.org/?version=beta&amp;mode=debug&amp;edition=2018&amp;gist=ab5084d87397e890a61c4495fc195e22" rel="noreferrer">playground link</a></p>