<p dir="auto">Right now i64 unifies with int on 64-bit platforms, etc, and it's a source of errors like in <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/rust-lang/rust/commit/d65df5d4d4a1d46434944482ae92bf1b162c6985/hovercard" href="https://github.com/rust-lang/rust/commit/d65df5d4d4a1d46434944482ae92bf1b162c6985"><tt>d65df5d</tt></a>. I believe they should be different types.</p>
<p dir="auto">Hi,</p>
<p dir="auto">The following compiler error is not particularly clear or helpful (formatted to show the non-clarity).</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="error: mismatched types: expected 
`core::option::Option&lt;&amp;'r Job&gt;` but found
`core::option::Option&lt;&amp;'r Job&gt;` (lifetime mismatch)"><pre class="notranslate"><code class="notranslate">error: mismatched types: expected 
`core::option::Option&lt;&amp;'r Job&gt;` but found
`core::option::Option&lt;&amp;'r Job&gt;` (lifetime mismatch)
</code></pre></div>
<p dir="auto">While I understand there's a mismatch here, it's not really helpful in grasping what has to happen in my code to correct the error. In particular, if I passed type "X" but got "X", I'm not led towards a clear solution.</p>
<p dir="auto">I've included below a fuller scroll, which is an error I have gotten a lot but don't really grok how to avoid yet.</p>
<p dir="auto">Basically, I'm confused by the errors here and don't find them clarifying, only that I'm doing something vaguely wrong with lifetimes.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="newton.rs:211:5: 213:6 note: consider using an explicit lifetime parameter as shown: fn take_job&lt;'r&gt;(&amp;'r mut self, job: &amp;'r Job)
newton.rs:211     fn take_job&lt;'r&gt;(&amp;'r mut self, job: &amp;'r Job) -&gt; () {
newton.rs:212         self.job = Some(job);
newton.rs:213     }
newton.rs:212:20: 212:29 error: cannot infer an appropriate lifetime due to conflicting requirements
newton.rs:212         self.job = Some(job);
                                 ^~~~~~~~~
newton.rs:212:20: 212:29 error: mismatched types: expected `core::option::Option&lt;&amp;'r Job&gt;` but found `core::option::Option&lt;&amp;Job&gt;` (lifetime mismatch)
newton.rs:212         self.job = Some(job);
                                 ^~~~~~~~~"><pre class="notranslate"><code class="notranslate">newton.rs:211:5: 213:6 note: consider using an explicit lifetime parameter as shown: fn take_job&lt;'r&gt;(&amp;'r mut self, job: &amp;'r Job)
newton.rs:211     fn take_job&lt;'r&gt;(&amp;'r mut self, job: &amp;'r Job) -&gt; () {
newton.rs:212         self.job = Some(job);
newton.rs:213     }
newton.rs:212:20: 212:29 error: cannot infer an appropriate lifetime due to conflicting requirements
newton.rs:212         self.job = Some(job);
                                 ^~~~~~~~~
newton.rs:212:20: 212:29 error: mismatched types: expected `core::option::Option&lt;&amp;'r Job&gt;` but found `core::option::Option&lt;&amp;Job&gt;` (lifetime mismatch)
newton.rs:212         self.job = Some(job);
                                 ^~~~~~~~~
</code></pre></div>