<p dir="auto">Error messages use <code class="notranslate">_</code> a lot but it's meaning is never explained. This could be improved.</p>
<p dir="auto"><a href="http://is.gd/T4XGJW" rel="nofollow">Playpen</a></p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="fn test(o: Option&lt;i32&gt;) {}

fn main() {
    let i = 7;
    test(i);
}"><pre class="notranslate"><span class="pl-k">fn</span> <span class="pl-en">test</span><span class="pl-kos">(</span><span class="pl-s1">o</span><span class="pl-kos">:</span> <span class="pl-smi">Option</span><span class="pl-kos">&lt;</span><span class="pl-smi">i32</span><span class="pl-kos">&gt;</span><span class="pl-kos">)</span> <span class="pl-kos">{</span><span class="pl-kos">}</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> i = <span class="pl-c1">7</span><span class="pl-kos">;</span>
    <span class="pl-en">test</span><span class="pl-kos">(</span>i<span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Error:</p>
<div class="highlight highlight-source-batchfile notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// What is `_` supposed to mean? Apparently integral value but it still seems meaningless...
... error ... expected `core::option::Option&lt;i32&gt;`, found `_`  ... found integral variable)
&lt;anon&gt;:5     test(i);
                  ^
error: aborting due to previous error"><pre class="notranslate">// What is `_` supposed to mean? Apparently integral value but it still seems meaningless...
... error ... expected `core::option::Option<span class="pl-k">&lt;</span>i32<span class="pl-k">&gt;</span>`, found `_`  ... found integral variable)
<span class="pl-k">&lt;</span>anon<span class="pl-k">&gt;</span>:5     test(i);
                  <span class="pl-cce">^</span>
error: aborting due to previous error</pre></div>
<hr>
<p dir="auto">6/8/2017: updated error message:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="error[E0308]: mismatched types
 --&gt; &lt;anon&gt;:5:10
  |
5 |     test(i);
  |          ^ expected enum `std::option::Option`, found integral variable
  |
  = note: expected type `std::option::Option&lt;i32&gt;`
             found type `{integer}`

error: aborting due to previous error"><pre class="notranslate">error<span class="pl-kos">[</span><span class="pl-v">E0308</span><span class="pl-kos">]</span><span class="pl-kos">:</span> mismatched types
 --&gt; &lt;anon&gt;<span class="pl-kos">:</span><span class="pl-c1">5</span><span class="pl-kos">:</span><span class="pl-c1">10</span>
  |
<span class="pl-c1">5</span> |     <span class="pl-en">test</span><span class="pl-kos">(</span>i<span class="pl-kos">)</span><span class="pl-kos">;</span>
  |          ^ expected enum `std<span class="pl-kos">::</span>option<span class="pl-kos">::</span><span class="pl-v">Option</span>`<span class="pl-kos">,</span> found integral variable
  |
  = note<span class="pl-kos">:</span> expected type `std<span class="pl-kos">::</span>option<span class="pl-kos">::</span><span class="pl-v">Option</span>&lt;i32&gt;`
             <span class="pl-smi">found</span> type `<span class="pl-kos">{</span>integer<span class="pl-kos">}</span>`

error<span class="pl-kos">:</span> aborting due to previous error</pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="fn main() {
    let a = Vec::new();
}"><pre class="notranslate"><code class="notranslate">fn main() {
    let a = Vec::new();
}
</code></pre></div>
<p dir="auto">Gives me:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;anon&gt;:2:13: 2:21 error: unable to infer enough type information about `_`; type annotations required [E0282]
&lt;anon&gt;:2     let a = Vec::new();
                     ^~~~~~~~"><pre class="notranslate"><code class="notranslate">&lt;anon&gt;:2:13: 2:21 error: unable to infer enough type information about `_`; type annotations required [E0282]
&lt;anon&gt;:2     let a = Vec::new();
                     ^~~~~~~~
</code></pre></div>
<p dir="auto">This is confusing because it doesn't say what the <code class="notranslate">_</code> is that it can't figure out. Perhaps it could say something like:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Only able to infer that `a` has type `Vec&lt;_&gt;`; please annotate so I can figure out what `_` is."><pre class="notranslate"><code class="notranslate">Only able to infer that `a` has type `Vec&lt;_&gt;`; please annotate so I can figure out what `_` is.
</code></pre></div>