title: Is there any difference between Rc::clone(&rc) and rc.clone() in Rust? Is there any compilation optimizations happen based on that?
body: <p>I noticed the rust book recommends to use <code>Rc::clone(&amp;rc)</code> over <code>rc.clone()</code> as follows:</p>
  
  <pre class="lang-rust prettyprint-override"><code>use std::rc::Rc;
  
  let five = Rc::new(5);
  
  // recommended
  let _ = Rc::clone(&amp;five);
  
  // not recommended
  let _ = five.clone();
  
  </code></pre>
  
  <p>Why?</p>