<p dir="auto">Testcase:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="#![feature(slice_patterns)]
fn main() { let x: &amp;[String] = &amp;[]; match x { [[b..]..] =&gt; { println!(&quot;Fun{}&quot;, b.len()); } } }"><pre class="notranslate"><span class="pl-c1">#!<span class="pl-kos">[</span>feature<span class="pl-kos">(</span>slice_patterns<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">let</span> x<span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-kos">[</span><span class="pl-smi">String</span><span class="pl-kos">]</span> = <span class="pl-c1">&amp;</span><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span> <span class="pl-k">match</span> x <span class="pl-kos">{</span> <span class="pl-kos">[</span><span class="pl-kos">[</span>b..<span class="pl-kos">]</span>..<span class="pl-kos">]</span> =&gt; <span class="pl-kos">{</span> <span class="pl-en">println</span><span class="pl-en">!</span><span class="pl-kos">(</span><span class="pl-s">"Fun{}"</span>, b.len<span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span></pre></div>
<p dir="auto">Running this gives <code class="notranslate">playpen: application terminated abnormally with signal 4 (Illegal instruction)</code>.  A quick look at the IR shows that b somehow ends up uninitialized.</p>
<p dir="auto">Testcase:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="#![feature(slice_patterns)]
fn main() { let x: &amp;[String] = &amp;[]; let [[ref _a, _b..]..] = x; }"><pre class="notranslate"><span class="pl-c1">#!<span class="pl-kos">[</span>feature<span class="pl-kos">(</span>slice_patterns<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
<span class="pl-k">fn</span> <span class="pl-en">main</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">let</span> x<span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-kos">[</span><span class="pl-smi">String</span><span class="pl-kos">]</span> = <span class="pl-c1">&amp;</span><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span> <span class="pl-k">let</span> <span class="pl-kos">[</span><span class="pl-kos">[</span><span class="pl-k">ref</span> _a<span class="pl-kos">,</span> _b..<span class="pl-kos">]</span>..<span class="pl-kos">]</span> = x<span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div>
<p dir="auto">This clearly shouldn't type-check, but currently compiles without any error.</p>