<p dir="auto">Rust often requires more than 2G of virtual memory so it's not possible to build it on a 32-bit OS. This is especially problematic on Windows.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="47912395" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/18678" data-hovercard-type="pull_request" data-hovercard-url="/rust-lang/rust/pull/18678/hovercard" href="https://github.com/rust-lang/rust/pull/18678">#18678</a> may be enough to fix this on Linux / FreeBSD, and would allow preventing regressions via the jemalloc <code class="notranslate">mapped</code> statistic (+ accounting for the VM used by libraries, etc.).</p>
<p dir="auto">This code generates</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="trait Y&lt;'a&gt;: Sized {
    fn f(&amp;'a self) {
    }

    fn g(&amp;self) where Self: for&lt;'r&gt; Y&lt;'r&gt; {
        self.f();
    }
}"><pre class="notranslate"><span class="pl-k">trait</span> <span class="pl-smi">Y</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">&gt;</span><span class="pl-kos">:</span> <span class="pl-smi">Sized</span> <span class="pl-kos">{</span>
    <span class="pl-k">fn</span> <span class="pl-en">f</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-smi">self</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">g</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">self</span><span class="pl-kos">)</span> <span class="pl-k">where</span> <span class="pl-smi">Self</span><span class="pl-kos">:</span> <span class="pl-k">for</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">r</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Y</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">r</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-en">f</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">this ICE</p>
<div class="highlight highlight-text-adblock notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;anon&gt;:6:14: 6:17 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `Y&lt;'_&gt;` for the type `Self`
&lt;anon&gt;:6         self.f();
                      ^~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', ../src/libsyntax/diagnostic.rs:176


playpen: application terminated with error code 101"><pre class="notranslate">&lt;anon&gt;:6:14: 6:17 error: internal compiler error: coherence failed to report ambiguity: cannot locate the impl of the trait `Y&lt;'_&gt;` for the type `Self`
&lt;anon&gt;:6         self.f();
                      <span class="pl-k">^</span>~~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', ../src/libsyntax/diagnostic.rs:176


playpen: application terminated with error code 101</pre></div>