title: Difference in behavior between Box<T> and RefCell<T> constructors
body: <p>In Rust 1.36, the following compiles:</p>
  
  <pre><code>let arr = [0 as u8; 30];
  let buf: Box&lt;[u8]&gt; = Box::new(arr);
  </code></pre>
  
  <p>but this one fails, with the error: <code>expected slice, found array of 30 elements</code> referring to the undermarked code:</p>
  
  <pre><code>let arr = [0 as u8; 30];
  let buf: RefCell&lt;[u8]&gt; = RefCell::new(arr);
                           ^^^^^^^^^^^^^^^^^
  </code></pre>
  
  <p>Can anyone explain why the behavior is different? Both <code>RefCell</code> and <code>Box</code> constrain T as <code>&lt;T: ?Sized&gt;</code>.</p>