title: Can the `let Some(var) = option;` syntax be used in a situation where it's known that it's not `None`?
body: <p>When an option variable is known to be non-<code>None</code>, its normally fine to write:</p>
  
  <pre><code>let var = option_var.unwrap();
  </code></pre>
  
  <p>In one case I ran into, this caused an error about moving out of borrowed context.</p>
  
  <pre><code>if let Some(var) = option_var { ... }
  </code></pre>
  
  <p><em>(Handy since it allows <code>Some(ref mut var) = option_var</code> too).</em></p>
  
  <p>This works, however in this case I don't want this to be an <code>if</code> statement.
  Writing <code>let Some(var) = option_var;</code> fails with the error "pattern <code>None</code> not covered".</p>
  
  <p>To be clear <strong>this question isn't about borrowed context</strong>.</p>
  
  <p>Can the <code>let Some(var) = option;</code> syntax be used in a situation where it's known that it's not <code>None</code>? Resolving the "Pattern <code>None</code> not covered" warning? Or is this simply not supported outside an <code>if</code> statement?</p>