<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="use std::num::Float;

struct Point {x: f64, y: f64}

fn compute_distance(p1: &amp;Point, p2: &amp;Point) -&gt; f64 {
    let x_d = p1.x - p2.x;
    let y_d = p1.y - p2.y;
    Float::sqrt(x_d * x_d + y_d * y_d)
}

fn main() {
    let on_the_stack : Point = Point {x: 3.0, y: 4.0};
    let on_the_heap : Box&lt;Point&gt; = box Point {x: 7.0, y: 9.0};

    compute_distance(&amp;on_the_stack, &amp;*on_the_heap);
}"><pre class="notranslate"><span class="pl-k">use</span> std<span class="pl-kos">::</span>num<span class="pl-kos">::</span><span class="pl-v">Float</span><span class="pl-kos">;</span>

<span class="pl-k">struct</span> <span class="pl-smi">Point</span> <span class="pl-kos">{</span><span class="pl-c1">x</span><span class="pl-kos">:</span> <span class="pl-smi">f64</span><span class="pl-kos">,</span> <span class="pl-c1">y</span><span class="pl-kos">:</span> <span class="pl-smi">f64</span><span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">compute_distance</span><span class="pl-kos">(</span><span class="pl-s1">p1</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Point</span><span class="pl-kos">,</span> <span class="pl-s1">p2</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Point</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">f64</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> x_d = p1<span class="pl-kos">.</span><span class="pl-c1">x</span> - p2<span class="pl-kos">.</span><span class="pl-c1">x</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> y_d = p1<span class="pl-kos">.</span><span class="pl-c1">y</span> - p2<span class="pl-kos">.</span><span class="pl-c1">y</span><span class="pl-kos">;</span>
    <span class="pl-smi">Float</span><span class="pl-kos">::</span><span class="pl-en">sqrt</span><span class="pl-kos">(</span>x_d <span class="pl-c1">*</span> x_d + y_d <span class="pl-c1">*</span> y_d<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> on_the_stack <span class="pl-kos">:</span> <span class="pl-smi">Point</span> = <span class="pl-smi">Point</span> <span class="pl-kos">{</span><span class="pl-c1">x</span><span class="pl-kos">:</span> <span class="pl-c1">3.0</span><span class="pl-kos">,</span> <span class="pl-c1">y</span><span class="pl-kos">:</span> <span class="pl-c1">4.0</span><span class="pl-kos">}</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> on_the_heap <span class="pl-kos">:</span> <span class="pl-smi">Box</span><span class="pl-kos">&lt;</span><span class="pl-smi">Point</span><span class="pl-kos">&gt;</span> = box <span class="pl-smi">Point</span> <span class="pl-kos">{</span><span class="pl-c1">x</span><span class="pl-kos">:</span> <span class="pl-c1">7.0</span><span class="pl-kos">,</span> <span class="pl-c1">y</span><span class="pl-kos">:</span> <span class="pl-c1">9.0</span><span class="pl-kos">}</span><span class="pl-kos">;</span>

    <span class="pl-en">compute_distance</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span>on_the_stack<span class="pl-kos">,</span> <span class="pl-c1">&amp;</span><span class="pl-c1">*</span>on_the_heap<span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="sun@sun:~/Desktop/Rust$ RUST_BACKTRACE=1 rustc reference_lifetime.rs
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'assertion failed: `(left == right) &amp;&amp; (right == left)` (left: `3`, right: `0`)', /home/sun/rust/src/librustc/middle/trans/callee.rs:528

stack backtrace:
   1: 0xb61f3c80 - rt::backtrace::imp::write::h8e87d0f1c0e6314eOcq
   2: 0xb61f6b80 - failure::on_fail::hd69e89a09fe1c193byq
   3: 0xb656edd0 - unwind::begin_unwind_inner::h8024dabe9217e622Axd
   4: 0xb656e9f0 - unwind::begin_unwind_fmt::he2b10618cd8e2a3b2ud
   5: 0xb6af3910 - middle::trans::callee::trans_fn_ref_with_substs::h35ded8d4791617efGC3
   6: 0xb6af17a0 - middle::trans::callee::trans_fn_ref::h6fb7a7f230364cc9wq3
   7: 0xb6afa3d0 - middle::trans::callee::trans_call::closure.122313
   8: 0xb6ad10f0 - middle::trans::callee::trans_call_inner::hb58abead86d536f4qY3
   9: 0xb6afa140 - middle::trans::callee::trans_call::h1afd80801dd261bfKS3
  10: 0xb6b09d60 - middle::trans::expr::trans_rvalue_dps_unadjusted::hd623d2ee101663f1365
  11: 0xb6ac8780 - middle::trans::expr::trans_into::hfbee30f25eca9fb7BI4
  12: 0xb6ac8bf0 - middle::trans::controlflow::trans_block::h1bd514ecdbd0e95bRY0
  13: 0xb6b77750 - middle::trans::base::trans_closure::h6be5203281e95063V4g
  14: 0xb6aba540 - middle::trans::base::trans_fn::hfdfc7543375f42e2jgh
  15: 0xb6ab7540 - middle::trans::base::trans_item::h4c0dbd6cae5d4359Czh
  16: 0xb6b82ac0 - middle::trans::base::trans_crate::h5d3949c27f22bd3dtxi
  17: 0xb6ff9dc0 - driver::driver::phase_4_translate_to_llvm::h2473848275bafe8d6yA
  18: 0xb6ff1030 - driver::driver::compile_input::hcf3ef773b2081d8f05z
  19: 0xb707bc80 - driver::run_compiler::hf7e21306399a9813bTD
  20: 0xb707bb30 - driver::run::closure.144861
  21: 0xb6745ee0 - task::TaskBuilder&lt;S&gt;::try_future::closure.103260
  22: 0xb6745cc0 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.103231
  23: 0xb76d81b0 - task::NativeSpawner.Spawner::spawn::closure.8437
  24: 0xb656e790 - unwind::try::try_fn::h9de4ea0e925684b3tod
  25: 0xb65d7700 - rust_try_inner
  26: 0xb65d76c0 - rust_try
  27: 0xb656c770 - unwind::try::h30a13c8b3633dc23imd
  28: 0xb656c5e0 - task::Task::run::hd3b288cf5211df4eWBc
  29: 0xb76d7f30 - task::NativeSpawner.Spawner::spawn::closure.8377
  30: 0xb656de90 - thread::thread_start::h22611edb92a890cf7Vc
  31: 0xb60c9e40 - start_thread
  32: 0xb64649f2 - clone
  33:        0x0 - &lt;unknown&gt;"><pre class="notranslate"><code class="notranslate">sun@sun:~/Desktop/Rust$ RUST_BACKTRACE=1 rustc reference_lifetime.rs
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'assertion failed: `(left == right) &amp;&amp; (right == left)` (left: `3`, right: `0`)', /home/sun/rust/src/librustc/middle/trans/callee.rs:528

stack backtrace:
   1: 0xb61f3c80 - rt::backtrace::imp::write::h8e87d0f1c0e6314eOcq
   2: 0xb61f6b80 - failure::on_fail::hd69e89a09fe1c193byq
   3: 0xb656edd0 - unwind::begin_unwind_inner::h8024dabe9217e622Axd
   4: 0xb656e9f0 - unwind::begin_unwind_fmt::he2b10618cd8e2a3b2ud
   5: 0xb6af3910 - middle::trans::callee::trans_fn_ref_with_substs::h35ded8d4791617efGC3
   6: 0xb6af17a0 - middle::trans::callee::trans_fn_ref::h6fb7a7f230364cc9wq3
   7: 0xb6afa3d0 - middle::trans::callee::trans_call::closure.122313
   8: 0xb6ad10f0 - middle::trans::callee::trans_call_inner::hb58abead86d536f4qY3
   9: 0xb6afa140 - middle::trans::callee::trans_call::h1afd80801dd261bfKS3
  10: 0xb6b09d60 - middle::trans::expr::trans_rvalue_dps_unadjusted::hd623d2ee101663f1365
  11: 0xb6ac8780 - middle::trans::expr::trans_into::hfbee30f25eca9fb7BI4
  12: 0xb6ac8bf0 - middle::trans::controlflow::trans_block::h1bd514ecdbd0e95bRY0
  13: 0xb6b77750 - middle::trans::base::trans_closure::h6be5203281e95063V4g
  14: 0xb6aba540 - middle::trans::base::trans_fn::hfdfc7543375f42e2jgh
  15: 0xb6ab7540 - middle::trans::base::trans_item::h4c0dbd6cae5d4359Czh
  16: 0xb6b82ac0 - middle::trans::base::trans_crate::h5d3949c27f22bd3dtxi
  17: 0xb6ff9dc0 - driver::driver::phase_4_translate_to_llvm::h2473848275bafe8d6yA
  18: 0xb6ff1030 - driver::driver::compile_input::hcf3ef773b2081d8f05z
  19: 0xb707bc80 - driver::run_compiler::hf7e21306399a9813bTD
  20: 0xb707bb30 - driver::run::closure.144861
  21: 0xb6745ee0 - task::TaskBuilder&lt;S&gt;::try_future::closure.103260
  22: 0xb6745cc0 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.103231
  23: 0xb76d81b0 - task::NativeSpawner.Spawner::spawn::closure.8437
  24: 0xb656e790 - unwind::try::try_fn::h9de4ea0e925684b3tod
  25: 0xb65d7700 - rust_try_inner
  26: 0xb65d76c0 - rust_try
  27: 0xb656c770 - unwind::try::h30a13c8b3633dc23imd
  28: 0xb656c5e0 - task::Task::run::hd3b288cf5211df4eWBc
  29: 0xb76d7f30 - task::NativeSpawner.Spawner::spawn::closure.8377
  30: 0xb656de90 - thread::thread_start::h22611edb92a890cf7Vc
  31: 0xb60c9e40 - start_thread
  32: 0xb64649f2 - clone
  33:        0x0 - &lt;unknown&gt;
</code></pre></div>
<p dir="auto">Version</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="sun@sun:~/Desktop/Rust$ rustc -v
rustc 0.13.0-dev (96991e933 2014-10-22 23:57:11 +0000)"><pre class="notranslate"><code class="notranslate">sun@sun:~/Desktop/Rust$ rustc -v
rustc 0.13.0-dev (96991e933 2014-10-22 23:57:11 +0000)
</code></pre></div>
<p dir="auto">System</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:    14.10
Codename:   utopic"><pre class="notranslate"><code class="notranslate">No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.10
Release:    14.10
Codename:   utopic
</code></pre></div>
<h3 dir="auto">STR</h3>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// seq.rs
use std::collections::HashMap;
use std::hash::Hash;

pub trait Seq&lt;T&gt; {
    #[cfg(ice)]
    fn add_elem(&amp;mut self, T);

    #[cfg(not(ice))]
    fn add_elem(&amp;mut Self, T);

    fn new() -&gt; Self;
}

impl&lt;K, V&gt; Seq&lt;(K, V)&gt; for HashMap&lt;K, V&gt; where K: Eq + Hash {
    #[cfg(ice)]
    fn add_elem(&amp;mut self, (key, value): (K, V)) {
        self.insert(key, value);
    }

    #[cfg(not(ice))]
    fn add_elem(m: &amp;mut HashMap&lt;K, V&gt;, (key, value): (K, V)) {
        m.insert(key, value);
    }

    fn new() -&gt; HashMap&lt;K, V&gt; {
        HashMap::new()
    }
}"><pre class="notranslate"><span class="pl-c">// seq.rs</span>
<span class="pl-k">use</span> std<span class="pl-kos">::</span>collections<span class="pl-kos">::</span><span class="pl-v">HashMap</span><span class="pl-kos">;</span>
<span class="pl-k">use</span> std<span class="pl-kos">::</span>hash<span class="pl-kos">::</span><span class="pl-v">Hash</span><span class="pl-kos">;</span>

<span class="pl-k">pub</span> <span class="pl-k">trait</span> <span class="pl-smi">Seq</span><span class="pl-kos">&lt;</span><span class="pl-smi">T</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-c1">#<span class="pl-kos">[</span>cfg<span class="pl-kos">(</span>ice<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
    <span class="pl-k">fn</span> <span class="pl-en">add_elem</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-k">mut</span> <span class="pl-smi">self</span><span class="pl-kos">,</span> <span class="pl-smi">T</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

    <span class="pl-c1">#<span class="pl-kos">[</span>cfg<span class="pl-kos">(</span>not<span class="pl-kos">(</span>ice<span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">]</span></span>
    <span class="pl-k">fn</span> <span class="pl-en">add_elem</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-k">mut</span> <span class="pl-smi">Self</span><span class="pl-kos">,</span> <span class="pl-smi">T</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

    <span class="pl-k">fn</span> <span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">Self</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">impl</span><span class="pl-kos">&lt;</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Seq</span><span class="pl-kos">&lt;</span><span class="pl-kos">(</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">)</span><span class="pl-kos">&gt;</span> <span class="pl-k">for</span> <span class="pl-smi">HashMap</span><span class="pl-kos">&lt;</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">&gt;</span> <span class="pl-k">where</span> <span class="pl-smi">K</span><span class="pl-kos">:</span> <span class="pl-smi">Eq</span> + <span class="pl-smi">Hash</span> <span class="pl-kos">{</span>
    <span class="pl-c1">#<span class="pl-kos">[</span>cfg<span class="pl-kos">(</span>ice<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
    <span class="pl-k">fn</span> <span class="pl-en">add_elem</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-k">mut</span> <span class="pl-smi">self</span><span class="pl-kos">,</span> <span class="pl-kos">(</span>key<span class="pl-kos">,</span> value<span class="pl-kos">)</span><span class="pl-kos">:</span> <span class="pl-kos">(</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-en">insert</span><span class="pl-kos">(</span>key<span class="pl-kos">,</span> value<span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>

    <span class="pl-c1">#<span class="pl-kos">[</span>cfg<span class="pl-kos">(</span>not<span class="pl-kos">(</span>ice<span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">]</span></span>
    <span class="pl-k">fn</span> <span class="pl-en">add_elem</span><span class="pl-kos">(</span><span class="pl-s1">m</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-k">mut</span> <span class="pl-smi">HashMap</span><span class="pl-kos">&lt;</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">&gt;</span><span class="pl-kos">,</span> <span class="pl-kos">(</span>key<span class="pl-kos">,</span> value<span class="pl-kos">)</span><span class="pl-kos">:</span> <span class="pl-kos">(</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        m<span class="pl-kos">.</span><span class="pl-en">insert</span><span class="pl-kos">(</span>key<span class="pl-kos">,</span> value<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">new</span><span class="pl-kos">(</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">HashMap</span><span class="pl-kos">&lt;</span><span class="pl-smi">K</span><span class="pl-kos">,</span> <span class="pl-smi">V</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-smi">HashMap</span><span class="pl-kos">::</span><span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-kos">)</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span></pre></div>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// app.rs
extern crate seq;

use std::collections::HashMap;

fn main() {
    let _: HashMap&lt;char, String&gt; = {
        let mut temp = ::seq::Seq::new();

        ::seq::Seq::add_elem(&amp;mut temp, ('a', &quot;apple&quot;.to_string()));

        temp
    };
}"><pre class="notranslate"><span class="pl-c">// app.rs</span>
<span class="pl-k">extern</span> <span class="pl-k">crate</span> seq<span class="pl-kos">;</span>

<span class="pl-k">use</span> std<span class="pl-kos">::</span>collections<span class="pl-kos">::</span><span class="pl-v">HashMap</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> _<span class="pl-kos">:</span> <span class="pl-smi">HashMap</span><span class="pl-kos">&lt;</span><span class="pl-smi">char</span><span class="pl-kos">,</span> <span class="pl-smi">String</span><span class="pl-kos">&gt;</span> = <span class="pl-kos">{</span>
        <span class="pl-k">let</span> <span class="pl-k">mut</span> temp = <span class="pl-kos">::</span>seq<span class="pl-kos">::</span><span class="pl-smi">Seq</span><span class="pl-kos">::</span><span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

        <span class="pl-kos">::</span>seq<span class="pl-kos">::</span><span class="pl-smi">Seq</span><span class="pl-kos">::</span><span class="pl-en">add_elem</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-k">mut</span> temp<span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-s">'a'</span><span class="pl-kos">,</span> <span class="pl-s">"apple"</span><span class="pl-kos">.</span><span class="pl-en">to_string</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>

        temp
    <span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ rustc --cfg ice --crate-type=lib seq.rs
$ rustc -L . app.rs"><pre class="notranslate"><code class="notranslate">$ rustc --cfg ice --crate-type=lib seq.rs
$ rustc -L . app.rs
</code></pre></div>
<p dir="auto">If you omit the <code class="notranslate">--cfg ice</code> flag, compiling <code class="notranslate">app.rs</code> doesn't ICE. In that case UFCS is not used at all.</p>
<h3 dir="auto">Backtrace</h3>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'assertion failed: `(left == right) &amp;&amp; (right == left)` (left: `11`, right: `0`)', /var/tmp/paludis/build/dev-lang-rust-scm/work/rust-scm/src/librustc/middle/trans/callee.rs:504

stack backtrace:
   1:     0x7f8c4420a530 - rt::backtrace::imp::write::hc0bea45eeb94b4f2gDq
   2:     0x7f8c4420d660 - &lt;unknown&gt;
   3:     0x7f8c449ac890 - unwind::begin_unwind_inner::h7a44b117581e2f74Gxd
   4:     0x7f8c449ac3d0 - unwind::begin_unwind_fmt::h45039a117ffe43968ud
   5:     0x7f8c4518e740 - middle::trans::callee::trans_fn_ref_with_substs::h5c6fbb3c911b1c9bsm2
   6:     0x7f8c4518bd60 - middle::trans::callee::trans_fn_ref::h76d352f707b079480a2
   7:     0x7f8c45194650 - &lt;unknown&gt;
   8:     0x7f8c4516c1b0 - middle::trans::callee::trans_call_inner::h1363a864f6bb88c0aI2
   9:     0x7f8c451943a0 - middle::trans::callee::trans_call::hdf5a1e27fb88e0bavC2
  10:     0x7f8c451a3530 - &lt;unknown&gt;
  11:     0x7f8c45164440 - middle::trans::expr::trans_into::h51830a680129f037ss3
  12:     0x7f8c45163830 - middle::trans::controlflow::trans_stmt_semi::h4f58c2f4320d1330KEZ
  13:     0x7f8c45162de0 - middle::trans::controlflow::trans_stmt::h46e53ff7f38da11cxAZ
  14:     0x7f8c45164860 - middle::trans::controlflow::trans_block::ha4ca6acf3ba4f0c5DFZ
  15:     0x7f8c451a3530 - &lt;unknown&gt;
  16:     0x7f8c451a2170 - &lt;unknown&gt;
  17:     0x7f8c45165990 - middle::trans::expr::trans::h1177439ad486cf5emw3
  18:     0x7f8c4520b8f0 - middle::trans::_match::store_local::hde75dbf3d187178beZi
  19:     0x7f8c45163a20 - middle::trans::base::init_local::h9df9f875fba43791YJe
  20:     0x7f8c45162de0 - middle::trans::controlflow::trans_stmt::h46e53ff7f38da11cxAZ
  21:     0x7f8c45164860 - middle::trans::controlflow::trans_block::ha4ca6acf3ba4f0c5DFZ
  22:     0x7f8c452150f0 - middle::trans::base::trans_closure::h56e66481b064a22boBf
  23:     0x7f8c45156370 - middle::trans::base::trans_fn::hcc6c7d7c981b98c0MMf
  24:     0x7f8c451539d0 - middle::trans::base::trans_item::h1fa8cc7bd69d090855f
  25:     0x7f8c452206b0 - middle::trans::base::trans_crate::he0691a6f7c0f1264B4g
  26:     0x7f8c45671e10 - driver::driver::phase_4_translate_to_llvm::hfb1745881244cd9ayEx
  27:     0x7f8c45668110 - driver::driver::compile_input::hc2b446e7823ca44dtbx
  28:     0x7f8c456f3980 - &lt;unknown&gt;
  29:     0x7f8c456f3830 - &lt;unknown&gt;
  30:     0x7f8c44db9d80 - &lt;unknown&gt;
  31:     0x7f8c44db9b60 - &lt;unknown&gt;
  32:     0x7f8c45f65980 - &lt;unknown&gt;
  33:     0x7f8c449fd4b0 - &lt;unknown&gt;
  34:     0x7f8c449fd4a0 - rust_try
  35:     0x7f8c449aa150 - unwind::try::h18af68ce3545f05domd
  36:     0x7f8c449a9fd0 - task::Task::run::he7074020ac841b032Bc
  37:     0x7f8c45f656c0 - &lt;unknown&gt;
  38:     0x7f8c449ab8a0 - &lt;unknown&gt;
  39:     0x7f8c43cd21d0 - start_thread
  40:     0x7f8c446851b9 - clone
  41:                0x0 - &lt;unknown&gt;"><pre class="notranslate">error<span class="pl-kos">:</span> internal compiler error<span class="pl-kos">:</span> unexpected failure
note<span class="pl-kos">:</span> the compiler hit an unexpected failure path<span class="pl-kos">.</span> <span class="pl-c1">this</span> is a bug<span class="pl-kos">.</span>
<span class="pl-c1">note</span><span class="pl-kos">:</span> we would appreciate a bug report<span class="pl-kos">:</span> http<span class="pl-kos">:</span><span class="pl-c">//doc.rust-lang.org/complement-bugreport.html</span>
note<span class="pl-kos">:</span> run with `<span class="pl-v">RUST_BACKTRACE</span>=<span class="pl-c1">1</span>` <span class="pl-k">for</span> a backtrace
task <span class="pl-c1">'</span>rustc<span class="pl-c1">'</span> failed at <span class="pl-c1">'</span>assertion failed<span class="pl-kos">:</span> `<span class="pl-kos">(</span>left == right<span class="pl-kos">)</span> &amp;&amp; <span class="pl-kos">(</span>right == left<span class="pl-kos">)</span>` <span class="pl-kos">(</span>left<span class="pl-kos">:</span> `<span class="pl-c1">11</span>`<span class="pl-kos">,</span> right<span class="pl-kos">:</span> `<span class="pl-c1">0</span>`<span class="pl-kos">)</span><span class="pl-c1">'</span><span class="pl-kos">,</span> /var/tmp/paludis/build/dev-lang-rust-scm/work/rust-scm/src/librustc/middle/trans/callee<span class="pl-kos">.</span><span class="pl-c1">rs</span><span class="pl-kos">:</span><span class="pl-c1">504</span>

stack backtrace<span class="pl-kos">:</span>
   <span class="pl-c1">1</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4420a530</span> - rt<span class="pl-kos">::</span>backtrace<span class="pl-kos">::</span>imp<span class="pl-kos">::</span>write<span class="pl-kos">::</span>hc0bea45eeb94b4f2gDq
   <span class="pl-c1">2</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4420d660</span> - &lt;<span class="pl-smi">unknown</span>&gt;
   <span class="pl-c1">3</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449ac890</span> - unwind<span class="pl-kos">::</span>begin_unwind_inner<span class="pl-kos">::</span>h7a44b117581e2f74Gxd
   <span class="pl-c1">4</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449ac3d0</span> - unwind<span class="pl-kos">::</span>begin_unwind_fmt<span class="pl-kos">::</span>h45039a117ffe43968ud
   <span class="pl-c1">5</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4518e740</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>callee<span class="pl-kos">::</span>trans_fn_ref_with_substs<span class="pl-kos">::</span>h5c6fbb3c911b1c9bsm2
   <span class="pl-c1">6</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4518bd60</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>callee<span class="pl-kos">::</span>trans_fn_ref<span class="pl-kos">::</span>h76d352f707b079480a2
   <span class="pl-c1">7</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45194650</span> - &lt;<span class="pl-smi">unknown</span>&gt;
   <span class="pl-c1">8</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4516c1b0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>callee<span class="pl-kos">::</span>trans_call_inner<span class="pl-kos">::</span>h1363a864f6bb88c0aI2
   <span class="pl-c1">9</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c451943a0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>callee<span class="pl-kos">::</span>trans_call<span class="pl-kos">::</span>hdf5a1e27fb88e0bavC2
  <span class="pl-c1">10</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c451a3530</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">11</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45164440</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>expr<span class="pl-kos">::</span>trans_into<span class="pl-kos">::</span>h51830a680129f037ss3
  <span class="pl-c1">12</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45163830</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>controlflow<span class="pl-kos">::</span>trans_stmt_semi<span class="pl-kos">::</span>h4f58c2f4320d1330KEZ
  <span class="pl-c1">13</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45162de0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>controlflow<span class="pl-kos">::</span>trans_stmt<span class="pl-kos">::</span>h46e53ff7f38da11cxAZ
  <span class="pl-c1">14</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45164860</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>controlflow<span class="pl-kos">::</span>trans_block<span class="pl-kos">::</span>ha4ca6acf3ba4f0c5DFZ
  <span class="pl-c1">15</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c451a3530</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">16</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c451a2170</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">17</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45165990</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>expr<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>h1177439ad486cf5emw3
  <span class="pl-c1">18</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c4520b8f0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>_match<span class="pl-kos">::</span>store_local<span class="pl-kos">::</span>hde75dbf3d187178beZi
  <span class="pl-c1">19</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45163a20</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>base<span class="pl-kos">::</span>init_local<span class="pl-kos">::</span>h9df9f875fba43791YJe
  <span class="pl-c1">20</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45162de0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>controlflow<span class="pl-kos">::</span>trans_stmt<span class="pl-kos">::</span>h46e53ff7f38da11cxAZ
  <span class="pl-c1">21</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45164860</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>controlflow<span class="pl-kos">::</span>trans_block<span class="pl-kos">::</span>ha4ca6acf3ba4f0c5DFZ
  <span class="pl-c1">22</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c452150f0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>base<span class="pl-kos">::</span>trans_closure<span class="pl-kos">::</span>h56e66481b064a22boBf
  <span class="pl-c1">23</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45156370</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>base<span class="pl-kos">::</span>trans_fn<span class="pl-kos">::</span>hcc6c7d7c981b98c0MMf
  <span class="pl-c1">24</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c451539d0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>base<span class="pl-kos">::</span>trans_item<span class="pl-kos">::</span>h1fa8cc7bd69d090855f
  <span class="pl-c1">25</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c452206b0</span> - middle<span class="pl-kos">::</span>trans<span class="pl-kos">::</span>base<span class="pl-kos">::</span>trans_crate<span class="pl-kos">::</span>he0691a6f7c0f1264B4g
  <span class="pl-c1">26</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45671e10</span> - driver<span class="pl-kos">::</span>driver<span class="pl-kos">::</span>phase_4_translate_to_llvm<span class="pl-kos">::</span>hfb1745881244cd9ayEx
  <span class="pl-c1">27</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45668110</span> - driver<span class="pl-kos">::</span>driver<span class="pl-kos">::</span>compile_input<span class="pl-kos">::</span>hc2b446e7823ca44dtbx
  <span class="pl-c1">28</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c456f3980</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">29</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c456f3830</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">30</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c44db9d80</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">31</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c44db9b60</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">32</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45f65980</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">33</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449fd4b0</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">34</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449fd4a0</span> - rust_try
  <span class="pl-c1">35</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449aa150</span> - unwind<span class="pl-kos">::</span>try<span class="pl-kos">::</span>h18af68ce3545f05domd
  <span class="pl-c1">36</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449a9fd0</span> - task<span class="pl-kos">::</span><span class="pl-smi">Task</span><span class="pl-kos">::</span>run<span class="pl-kos">::</span>he7074020ac841b032Bc
  <span class="pl-c1">37</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c45f656c0</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">38</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c449ab8a0</span> - &lt;<span class="pl-smi">unknown</span>&gt;
  <span class="pl-c1">39</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c43cd21d0</span> - start_thread
  <span class="pl-c1">40</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7f8c446851b9</span> - clone
  <span class="pl-c1">41</span><span class="pl-kos">:</span>                <span class="pl-c1">0x0</span> - &lt;<span class="pl-smi">unknown</span>&gt;</pre></div>
<h3 dir="auto">Version</h3>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="rustc 0.13.0-dev (e4761c85b 2014-10-15 09:57:18 +0000)"><pre class="notranslate">rustc <span class="pl-c1">0.13</span><span class="pl-kos">.</span><span class="pl-c1">0</span>-<span class="pl-en">dev</span> <span class="pl-kos">(</span>e4761c85b <span class="pl-c1">2014</span>-<span class="pl-c1">10</span>-<span class="pl-c1">15</span> <span class="pl-c1">09</span><span class="pl-kos">:</span><span class="pl-c1">57</span><span class="pl-kos">:</span><span class="pl-c1">18</span> +<span class="pl-c1">0000</span><span class="pl-kos">)</span></pre></div>
<p dir="auto">cc <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nick29581/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nick29581">@nick29581</a></p>