<p dir="auto">I was trying to build <a href="https://github.com/maurizi/rgtk/tree/update-to-latest-master">https://github.com/maurizi/rgtk/tree/update-to-latest-master</a></p>
<p dir="auto">The backtrace is below:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ RUST_BACKTRACE=1 cargo build --verbose
       Fresh pkg-config v0.1.3
       Fresh gcc v0.1.3
   Compiling rgtk v0.0.1 (file:///home/mike/projects/rust-stuff/rgtk)
     Running `rustc src/rgtk.rs --crate-name rgtk --crate-type rlib -g -C metadata=cec106287d6301f5 -C extra-filename=-cec106287d6301f5 --out-dir /home/mike/projects/rust-stuff/rgtk/target --emit=dep-info,link -L /home/mike/projects/rust-stuff/rgtk/target -L /home/mike/projects/rust-stuff/rgtk/target/deps -L native=/usr/lib/x86_64-linux-gnu -L native=/home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -L /home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -l gtk-3 -l gdk-3 -l pangocairo-1.0 -l pango-1.0 -l atk-1.0 -l cairo-gobject -l cairo -l gdk_pixbuf-2.0 -l gio-2.0 -l gobject-2.0 -l glib-2.0 -l rgtk_glue:static -l rgtk_glue:static`
&lt;std macros&gt;:5:11: 5:71 warning: `deriving` is deprecated; use `derive`
&lt;std macros&gt;:5         #[deriving(Copy, PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&lt;std macros&gt;:5:11: 5:71 warning: `deriving` is deprecated; use `derive`
&lt;std macros&gt;:5         #[deriving(Copy, PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/cairo/paths.rs:83:1: 107:2 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 238989 }:cairo::paths::PathSegments&lt;'a&gt;.Iterator, substs=Substs[types=[[];[];[]], regions=[['_#0r];[];[]]], nested=[[];[];[]])` did not contain projection for `Obligation(predicate=&lt;cairo::paths::PathSegments&lt;'a&gt; as TraitRef(cairo::paths::PathSegments&lt;'a&gt;, core::iter::Iterator)&gt;::Item,depth=0)`
src/cairo/paths.rs:83 impl&lt;'a&gt; Iterator for PathSegments&lt;'a&gt; {
src/cairo/paths.rs:84     fn next(&amp;mut self) -&gt; Option&lt;PathSegment&gt; {
src/cairo/paths.rs:85         let i = self.i;
src/cairo/paths.rs:86 
src/cairo/paths.rs:87         if i &gt;= self.num_data{
src/cairo/paths.rs:88             return None;
                      ...
note: the compiler unexpectedly panicked. 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
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:     0x7ffa22e142d0 - sys::backtrace::write::h8532e701ef86014f4it
   2:     0x7ffa22e39b00 - failure::on_fail::h7532e1f79d134d5dzvz
   3:     0x7ffa22d9f1c0 - rt::unwind::begin_unwind_inner::h97b151606151d62deaz
   4:     0x7ffa1dc51c60 - rt::unwind::begin_unwind::h15809447133099964284
   5:     0x7ffa1dc51bf0 - diagnostic::SpanHandler::span_bug::he8142ababcc30c39DFF
   6:     0x7ffa21150e70 - middle::traits::project::project_type::h947eece142ef049d52P
   7:     0x7ffa2114dfd0 - middle::traits::project::opt_normalize_projection_type::hb3defb9cc9365d1e8UP
   8:     0x7ffa2113bba0 - middle::traits::project::normalize_projection_type::hdc293893275ee559JTP
   9:     0x7ffa2114f470 - middle::traits::project::AssociatedTypeNormalizer&lt;'a, 'b, 'tcx&gt;.TypeFolder&lt;'tcx&gt;::fold_ty::h801cbd2cdff2eff1kSP
  10:     0x7ffa2240c2e0 - middle::ty_fold::Rc&lt;T&gt;.TypeFoldable&lt;'tcx&gt;::fold_with::h6325524173844043840
  11:     0x7ffa2240ce90 - middle::ty_fold::VecPerParamSpace&lt;T&gt;.TypeFoldable&lt;'tcx&gt;::fold_with::h13884369302522804796
  12:     0x7ffa22428280 - check::FnCtxt&lt;'a, 'tcx&gt;::instantiate_bounds::hed550a9659b70335Oll
  13:     0x7ffa22440fc0 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;::check_impl::closure.29997
  14:     0x7ffa2243d430 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;::with_fcx::hb1283961ed8977b7Gfi
  15:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  16:     0x7ffa22445bd0 - visit::walk_mod::h4610212675369237127
  17:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  18:     0x7ffa22445bd0 - visit::walk_mod::h4610212675369237127
  19:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  20:     0x7ffa22630fe0 - check_crate::unboxed_closure.40162
  21:     0x7ffa2262bc30 - check_crate::h19fb6dea5733566ajsx
  22:     0x7ffa23365640 - driver::phase_3_run_analysis_passes::h46b1604d9f9f5633Tva
  23:     0x7ffa23353ae0 - driver::compile_input::h68b8602933aad8d7wba
  24:     0x7ffa2341eeb0 - thunk::F.Invoke&lt;A, R&gt;::invoke::h18029802347644288836
  25:     0x7ffa2341dc60 - rt::unwind::try::try_fn::h6518866316425934196
  26:     0x7ffa22ea0400 - rust_try_inner
  27:     0x7ffa22ea03f0 - rust_try
  28:     0x7ffa2341dfb0 - thunk::F.Invoke&lt;A, R&gt;::invoke::h15513809553472565307
  29:     0x7ffa22e25e40 - sys::thread::thread_start::h5ea7ba97235331d5a9v
  30:     0x7ffa1d474fe0 - start_thread
  31:     0x7ffa22a46749 - __clone
  32:                0x0 - &lt;unknown&gt;

Could not compile `rgtk`.

Caused by:
  Process didn't exit successfully: `rustc src/rgtk.rs --crate-name rgtk --crate-type rlib -g -C metadata=cec106287d6301f5 -C extra-filename=-cec106287d6301f5 --out-dir /home/mike/projects/rust-stuff/rgtk/target --emit=dep-info,link -L /home/mike/projects/rust-stuff/rgtk/target -L /home/mike/projects/rust-stuff/rgtk/target/deps -L native=/usr/lib/x86_64-linux-gnu -L native=/home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -L /home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -l gtk-3 -l gdk-3 -l pangocairo-1.0 -l pango-1.0 -l atk-1.0 -l cairo-gobject -l cairo -l gdk_pixbuf-2.0 -l gio-2.0 -l gobject-2.0 -l glib-2.0 -l rgtk_glue:static -l rgtk_glue:static` (status=101)"><pre class="notranslate"><code class="notranslate">$ RUST_BACKTRACE=1 cargo build --verbose
       Fresh pkg-config v0.1.3
       Fresh gcc v0.1.3
   Compiling rgtk v0.0.1 (file:///home/mike/projects/rust-stuff/rgtk)
     Running `rustc src/rgtk.rs --crate-name rgtk --crate-type rlib -g -C metadata=cec106287d6301f5 -C extra-filename=-cec106287d6301f5 --out-dir /home/mike/projects/rust-stuff/rgtk/target --emit=dep-info,link -L /home/mike/projects/rust-stuff/rgtk/target -L /home/mike/projects/rust-stuff/rgtk/target/deps -L native=/usr/lib/x86_64-linux-gnu -L native=/home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -L /home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -l gtk-3 -l gdk-3 -l pangocairo-1.0 -l pango-1.0 -l atk-1.0 -l cairo-gobject -l cairo -l gdk_pixbuf-2.0 -l gio-2.0 -l gobject-2.0 -l glib-2.0 -l rgtk_glue:static -l rgtk_glue:static`
&lt;std macros&gt;:5:11: 5:71 warning: `deriving` is deprecated; use `derive`
&lt;std macros&gt;:5         #[deriving(Copy, PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&lt;std macros&gt;:5:11: 5:71 warning: `deriving` is deprecated; use `derive`
&lt;std macros&gt;:5         #[deriving(Copy, PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/cairo/paths.rs:83:1: 107:2 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 238989 }:cairo::paths::PathSegments&lt;'a&gt;.Iterator, substs=Substs[types=[[];[];[]], regions=[['_#0r];[];[]]], nested=[[];[];[]])` did not contain projection for `Obligation(predicate=&lt;cairo::paths::PathSegments&lt;'a&gt; as TraitRef(cairo::paths::PathSegments&lt;'a&gt;, core::iter::Iterator)&gt;::Item,depth=0)`
src/cairo/paths.rs:83 impl&lt;'a&gt; Iterator for PathSegments&lt;'a&gt; {
src/cairo/paths.rs:84     fn next(&amp;mut self) -&gt; Option&lt;PathSegment&gt; {
src/cairo/paths.rs:85         let i = self.i;
src/cairo/paths.rs:86 
src/cairo/paths.rs:87         if i &gt;= self.num_data{
src/cairo/paths.rs:88             return None;
                      ...
note: the compiler unexpectedly panicked. 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
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:     0x7ffa22e142d0 - sys::backtrace::write::h8532e701ef86014f4it
   2:     0x7ffa22e39b00 - failure::on_fail::h7532e1f79d134d5dzvz
   3:     0x7ffa22d9f1c0 - rt::unwind::begin_unwind_inner::h97b151606151d62deaz
   4:     0x7ffa1dc51c60 - rt::unwind::begin_unwind::h15809447133099964284
   5:     0x7ffa1dc51bf0 - diagnostic::SpanHandler::span_bug::he8142ababcc30c39DFF
   6:     0x7ffa21150e70 - middle::traits::project::project_type::h947eece142ef049d52P
   7:     0x7ffa2114dfd0 - middle::traits::project::opt_normalize_projection_type::hb3defb9cc9365d1e8UP
   8:     0x7ffa2113bba0 - middle::traits::project::normalize_projection_type::hdc293893275ee559JTP
   9:     0x7ffa2114f470 - middle::traits::project::AssociatedTypeNormalizer&lt;'a, 'b, 'tcx&gt;.TypeFolder&lt;'tcx&gt;::fold_ty::h801cbd2cdff2eff1kSP
  10:     0x7ffa2240c2e0 - middle::ty_fold::Rc&lt;T&gt;.TypeFoldable&lt;'tcx&gt;::fold_with::h6325524173844043840
  11:     0x7ffa2240ce90 - middle::ty_fold::VecPerParamSpace&lt;T&gt;.TypeFoldable&lt;'tcx&gt;::fold_with::h13884369302522804796
  12:     0x7ffa22428280 - check::FnCtxt&lt;'a, 'tcx&gt;::instantiate_bounds::hed550a9659b70335Oll
  13:     0x7ffa22440fc0 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;::check_impl::closure.29997
  14:     0x7ffa2243d430 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;::with_fcx::hb1283961ed8977b7Gfi
  15:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  16:     0x7ffa22445bd0 - visit::walk_mod::h4610212675369237127
  17:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  18:     0x7ffa22445bd0 - visit::walk_mod::h4610212675369237127
  19:     0x7ffa22443d70 - check::wf::CheckTypeWellFormedVisitor&lt;'ccx, 'tcx&gt;.Visitor&lt;'v&gt;::visit_item::h001ababd87597e37soi
  20:     0x7ffa22630fe0 - check_crate::unboxed_closure.40162
  21:     0x7ffa2262bc30 - check_crate::h19fb6dea5733566ajsx
  22:     0x7ffa23365640 - driver::phase_3_run_analysis_passes::h46b1604d9f9f5633Tva
  23:     0x7ffa23353ae0 - driver::compile_input::h68b8602933aad8d7wba
  24:     0x7ffa2341eeb0 - thunk::F.Invoke&lt;A, R&gt;::invoke::h18029802347644288836
  25:     0x7ffa2341dc60 - rt::unwind::try::try_fn::h6518866316425934196
  26:     0x7ffa22ea0400 - rust_try_inner
  27:     0x7ffa22ea03f0 - rust_try
  28:     0x7ffa2341dfb0 - thunk::F.Invoke&lt;A, R&gt;::invoke::h15513809553472565307
  29:     0x7ffa22e25e40 - sys::thread::thread_start::h5ea7ba97235331d5a9v
  30:     0x7ffa1d474fe0 - start_thread
  31:     0x7ffa22a46749 - __clone
  32:                0x0 - &lt;unknown&gt;

Could not compile `rgtk`.

Caused by:
  Process didn't exit successfully: `rustc src/rgtk.rs --crate-name rgtk --crate-type rlib -g -C metadata=cec106287d6301f5 -C extra-filename=-cec106287d6301f5 --out-dir /home/mike/projects/rust-stuff/rgtk/target --emit=dep-info,link -L /home/mike/projects/rust-stuff/rgtk/target -L /home/mike/projects/rust-stuff/rgtk/target/deps -L native=/usr/lib/x86_64-linux-gnu -L native=/home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -L /home/mike/projects/rust-stuff/rgtk/target/build/rgtk-cec106287d6301f5/out -l gtk-3 -l gdk-3 -l pangocairo-1.0 -l pango-1.0 -l atk-1.0 -l cairo-gobject -l cairo -l gdk_pixbuf-2.0 -l gio-2.0 -l gobject-2.0 -l glib-2.0 -l rgtk_glue:static -l rgtk_glue:static` (status=101)
</code></pre></div>
<h3 dir="auto">STR</h3>
<p dir="auto">Didn't have time to write a shorter snippet</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="#![crate_type = &quot;lib&quot;]
#![feature(associated_types, lang_items, unboxed_closures)]
#![no_std]

use Option::{None, Some};

trait Iterator {
    type Item;

    fn next(&amp;mut self) -&gt; Option&lt;Self::Item&gt;;
}

trait DoubleEndedIterator: Iterator {
    fn next_back(&amp;mut self) -&gt; Option&lt; &lt;Self as Iterator&gt;::Item&gt;;
}

struct Rev&lt;I&gt;(I);

impl&lt;I&gt; Iterator for Rev&lt;I&gt; where I: DoubleEndedIterator {
    // forgot this!
    //type Item = &lt;I as Iterator&gt;::Item;

    fn next(&amp;mut self) -&gt; Option&lt; &lt;I as Iterator&gt;::Item&gt; {
        self.0.next_back()
    }
}

#[lang = &quot;copy&quot;] trait Copy {}
#[lang = &quot;sized&quot;] trait Sized {}

enum Option&lt;T&gt; {
    None,
    Some(T),
}

#[lang = &quot;fn_mut&quot;]
trait FnMut&lt;Args, Result&gt; {
    extern &quot;rust-call&quot; fn call_mut(&amp;mut self, Args) -&gt; Result;
}"><pre class="notranslate"><span class="pl-c1">#!<span class="pl-kos">[</span>crate_type = <span class="pl-s">"lib"</span><span class="pl-kos">]</span></span>
<span class="pl-c1">#!<span class="pl-kos">[</span>feature<span class="pl-kos">(</span>associated_types<span class="pl-kos">,</span> lang_items<span class="pl-kos">,</span> unboxed_closures<span class="pl-kos">)</span><span class="pl-kos">]</span></span>
<span class="pl-c1">#!<span class="pl-kos">[</span>no_std<span class="pl-kos">]</span></span>

<span class="pl-k">use</span> <span class="pl-v">Option</span><span class="pl-kos">::</span><span class="pl-kos">{</span><span class="pl-v">None</span><span class="pl-kos">,</span> <span class="pl-v">Some</span><span class="pl-kos">}</span><span class="pl-kos">;</span>

<span class="pl-k">trait</span> <span class="pl-smi">Iterator</span> <span class="pl-kos">{</span>
    <span class="pl-k">type</span> <span class="pl-smi">Item</span><span class="pl-kos">;</span>

    <span class="pl-k">fn</span> <span class="pl-en">next</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> -&gt; <span class="pl-smi">Option</span><span class="pl-kos">&lt;</span><span class="pl-smi">Self</span><span class="pl-kos">::</span><span class="pl-smi">Item</span><span class="pl-kos">&gt;</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">trait</span> <span class="pl-smi">DoubleEndedIterator</span><span class="pl-kos">:</span> <span class="pl-smi">Iterator</span> <span class="pl-kos">{</span>
    <span class="pl-k">fn</span> <span class="pl-en">next_back</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> -&gt; <span class="pl-smi">Option</span><span class="pl-kos">&lt;</span> &lt;<span class="pl-smi">Self</span> <span class="pl-k">as</span> <span class="pl-smi">Iterator</span>&gt;<span class="pl-kos">::</span><span class="pl-smi">Item</span><span class="pl-kos">&gt;</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">struct</span> <span class="pl-smi">Rev</span><span class="pl-kos">&lt;</span><span class="pl-smi">I</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-smi">I</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">I</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Iterator</span> <span class="pl-k">for</span> <span class="pl-smi">Rev</span><span class="pl-kos">&lt;</span><span class="pl-smi">I</span><span class="pl-kos">&gt;</span> <span class="pl-k">where</span> <span class="pl-smi">I</span><span class="pl-kos">:</span> <span class="pl-smi">DoubleEndedIterator</span> <span class="pl-kos">{</span>
    <span class="pl-c">// forgot this!</span>
    <span class="pl-c">//type Item = &lt;I as Iterator&gt;::Item;</span>

    <span class="pl-k">fn</span> <span class="pl-en">next</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> -&gt; <span class="pl-smi">Option</span><span class="pl-kos">&lt;</span> &lt;<span class="pl-smi">I</span> <span class="pl-k">as</span> <span class="pl-smi">Iterator</span>&gt;<span class="pl-kos">::</span><span class="pl-smi">Item</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-c1">0</span><span class="pl-kos">.</span><span class="pl-en">next_back</span><span class="pl-kos">(</span><span class="pl-kos">)</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span>

<span class="pl-c1">#<span class="pl-kos">[</span>lang = <span class="pl-s">"copy"</span><span class="pl-kos">]</span></span> <span class="pl-k">trait</span> <span class="pl-smi">Copy</span> <span class="pl-kos">{</span><span class="pl-kos">}</span>
<span class="pl-c1">#<span class="pl-kos">[</span>lang = <span class="pl-s">"sized"</span><span class="pl-kos">]</span></span> <span class="pl-k">trait</span> <span class="pl-smi">Sized</span> <span class="pl-kos">{</span><span class="pl-kos">}</span>

<span class="pl-k">enum</span> <span class="pl-smi">Option</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-v">None</span><span class="pl-kos">,</span>
    <span class="pl-v">Some</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-kos">}</span>

<span class="pl-c1">#<span class="pl-kos">[</span>lang = <span class="pl-s">"fn_mut"</span><span class="pl-kos">]</span></span>
<span class="pl-k">trait</span> <span class="pl-smi">FnMut</span><span class="pl-kos">&lt;</span><span class="pl-smi">Args</span><span class="pl-kos">,</span> <span class="pl-smi">Result</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-k">extern</span> <span class="pl-s">"rust-call"</span> <span class="pl-k">fn</span> <span class="pl-en">call_mut</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">Args</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">Result</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<h3 dir="auto">Output</h3>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="iter.rs:23:5: 25:6 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 38 }:Rev&lt;I&gt;.Iterator, substs=Substs[types=[[_];[];[]], regions=[[];[];[]]], nested=[[Obligation(predicate=Binder(TraitPredicate(TraitRef(I, Sized))),depth=1), Obligation(predicate=Binder(TraitPredicate(TraitRef(I, DoubleEndedIterator))),depth=1)];[];[]])` did not contain projection for `Obligation(predicate=&lt;Rev&lt;I&gt; as TraitRef(Rev&lt;I&gt;, Iterator)&gt;::Item,depth=0)`
iter.rs:23     fn next(&amp;mut self) -&gt; Option&lt; &lt;I as Iterator&gt;::Item&gt; {
iter.rs:24         self.0.next_back()
iter.rs:25     }
note: the compiler unexpectedly panicked. 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
thread 'rustc' panicked at 'Box&lt;Any&gt;', /root/rust/src/libsyntax/diagnostic.rs:123

stack backtrace:
   1:     0x7fddb1e70120 - sys::backtrace::write::h3fe61c98bf398fe8P8s
   2:     0x7fddb1e8fef0 - failure::on_fail::h55da319a91ee267cEpz
   3:     0x7fddb1e05b40 - rt::unwind::begin_unwind_inner::h2a51826b093fcd9eJ3y
   4:     0x7fddad24b3d0 - rt::unwind::begin_unwind::h3298842058425057001
   5:     0x7fddad24b360 - diagnostic::SpanHandler::span_bug::heeaf2edd6daa003fNQF
   6:     0x7fddb022acb0 - middle::traits::project::project_type::hcf50d7eec736df9c35P
   7:     0x7fddb0222800 - middle::traits::fulfill::process_predicate::h3703aabc133e79cayGP
   8:     0x7fddb0221ab0 - middle::traits::fulfill::FulfillmentContext&lt;$u{27}tcx$GT$::select::h827e4d042486e566SzP
   9:     0x7fddb00ee7c0 - middle::traits::fulfill::FulfillmentContext&lt;$u{27}tcx$GT$::select_all_or_error::heebbe09eddbd26dfDwP
  10:     0x7fddb1510cd0 - check::compare_impl_method::h359a8a44e8f8def4Zfk
  11:     0x7fddb14ff0b0 - check::check_item::hfedb86714512d4d8XRj
  12:     0x7fddb169d450 - check_crate::unboxed_closure.39783
  13:     0x7fddb16981f0 - check_crate::h7446c5344d10b3c1cGx
  14:     0x7fddb23a98d0 - driver::phase_3_run_analysis_passes::hb59d2d67157ec124gva
  15:     0x7fddb2397fb0 - driver::compile_input::hff9e8d16e3108315vba
  16:     0x7fddb24e4900 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h10803646332669730367
  17:     0x7fddb24e36c0 - rt::unwind::try::try_fn::h3820096971255462672
  18:     0x7fddb1ef4eb0 - rust_try_inner
  19:     0x7fddb1ef4ea0 - rust_try
  20:     0x7fddb24e3a10 - thunk::F.Invoke&lt;A,$u{20}R$GT$::invoke::h15250775183210022334
  21:     0x7fddb1e7f8d0 - sys::thread::thread_start::h7b82ef93cab3e580K1v
  22:     0x7fddaca690c0 - start_thread
  23:     0x7fddb1aab2d9 - __clone
  24:                0x0 - &lt;unknown&gt;"><pre class="notranslate">iter<span class="pl-kos">.</span><span class="pl-c1">rs</span><span class="pl-kos">:</span><span class="pl-c1">23</span><span class="pl-kos">:</span><span class="pl-c1">5</span><span class="pl-kos">:</span> <span class="pl-c1">25</span><span class="pl-kos">:</span><span class="pl-c1">6</span> error<span class="pl-kos">:</span> internal compiler error<span class="pl-kos">:</span> <span class="pl-k">impl</span> `<span class="pl-smi">VtableImpl</span><span class="pl-kos">(</span><span class="pl-smi">impl_def_id</span>=<span class="pl-v">DefId</span> <span class="pl-kos">{</span> <span class="pl-c1">krate</span><span class="pl-kos">:</span> <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-c1">node</span><span class="pl-kos">:</span> <span class="pl-c1">38</span> <span class="pl-kos">}</span><span class="pl-kos">:</span><span class="pl-smi">Rev</span><span class="pl-kos">&lt;</span><span class="pl-smi">I</span><span class="pl-kos">&gt;</span><span class="pl-kos">.</span><span class="pl-smi">Iterator</span><span class="pl-kos">,</span> substs=<span class="pl-v">Substs</span><span class="pl-kos">[</span>types=<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><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">]</span><span class="pl-kos">,</span> regions=<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><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> nested=<span class="pl-kos">[</span><span class="pl-kos">[</span><span class="pl-v">Obligation</span><span class="pl-kos">(</span>predicate=<span class="pl-v">Binder</span><span class="pl-kos">(</span><span class="pl-v">TraitPredicate</span><span class="pl-kos">(</span><span class="pl-v">TraitRef</span><span class="pl-kos">(</span><span class="pl-v">I</span><span class="pl-kos">,</span> <span class="pl-v">Sized</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">,</span>depth=<span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-v">Obligation</span><span class="pl-kos">(</span>predicate=<span class="pl-v">Binder</span><span class="pl-kos">(</span><span class="pl-v">TraitPredicate</span><span class="pl-kos">(</span><span class="pl-v">TraitRef</span><span class="pl-kos">(</span><span class="pl-v">I</span><span class="pl-kos">,</span> <span class="pl-v">DoubleEndedIterator</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">,</span>depth=<span class="pl-c1">1</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><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">]</span><span class="pl-kos">)</span>` did not contain <span class="pl-smi">projection</span> <span class="pl-k">for</span> `<span class="pl-smi">Obligation</span><span class="pl-kos">(</span><span class="pl-smi">predicate</span>=<span class="pl-kos">&lt;</span><span class="pl-smi">Rev</span><span class="pl-kos">&lt;</span><span class="pl-smi">I</span><span class="pl-kos">&gt;</span> <span class="pl-k">as</span> <span class="pl-smi">TraitRef</span><span class="pl-kos">(</span><span class="pl-smi">Rev</span><span class="pl-kos">&lt;</span><span class="pl-smi">I</span><span class="pl-kos">&gt;</span><span class="pl-kos">,</span> <span class="pl-smi">Iterator</span><span class="pl-kos">)</span><span class="pl-kos">&gt;</span><span class="pl-kos">::</span><span class="pl-smi">Item</span><span class="pl-kos">,</span><span class="pl-smi">depth</span>=<span class="pl-c1">0</span><span class="pl-kos">)</span>`
iter<span class="pl-kos">.</span><span class="pl-smi">rs</span><span class="pl-kos">:</span><span class="pl-c1">23</span>     <span class="pl-k">fn</span> <span class="pl-smi">next</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> -&gt; <span class="pl-smi">Option</span><span class="pl-kos">&lt;</span> &lt;<span class="pl-smi">I</span> <span class="pl-k">as</span> <span class="pl-smi">Iterator</span>&gt;<span class="pl-kos">::</span><span class="pl-smi">Item</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
iter<span class="pl-kos">.</span>rs<span class="pl-kos">:</span><span class="pl-c1">24</span>         <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">0</span><span class="pl-kos">.</span>next_back<span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos"></span>
iter<span class="pl-kos">.</span><span class="pl-c1">rs</span><span class="pl-kos">:</span><span class="pl-c1">25</span>     <span class="pl-kos">}</span>
note<span class="pl-kos">:</span> the compiler unexpectedly panicked<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
thread <span class="pl-c1">'</span>rustc<span class="pl-c1">'</span> panicked at <span class="pl-c1">'</span><span class="pl-v">Box</span>&lt;<span class="pl-v">Any</span>&gt;<span class="pl-c1">'</span><span class="pl-kos">,</span> /root/rust/src/libsyntax/diagnostic<span class="pl-kos">.</span><span class="pl-c1">rs</span><span class="pl-kos">:</span><span class="pl-c1">123</span>

stack backtrace<span class="pl-kos">:</span>
   <span class="pl-c1">1</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1e70120</span> - sys<span class="pl-kos">::</span>backtrace<span class="pl-kos">::</span>write<span class="pl-kos">::</span>h3fe61c98bf398fe8P8s
   <span class="pl-c1">2</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1e8fef0</span> - failure<span class="pl-kos">::</span>on_fail<span class="pl-kos">::</span>h55da319a91ee267cEpz
   <span class="pl-c1">3</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1e05b40</span> - rt<span class="pl-kos">::</span>unwind<span class="pl-kos">::</span>begin_unwind_inner<span class="pl-kos">::</span>h2a51826b093fcd9eJ3y
   <span class="pl-c1">4</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddad24b3d0</span> - rt<span class="pl-kos">::</span>unwind<span class="pl-kos">::</span>begin_unwind<span class="pl-kos">::</span>h3298842058425057001
   <span class="pl-c1">5</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddad24b360</span> - diagnostic<span class="pl-kos">::</span><span class="pl-smi">SpanHandler</span><span class="pl-kos">::</span>span_bug<span class="pl-kos">::</span>heeaf2edd6daa003fNQF
   <span class="pl-c1">6</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb022acb0</span> - middle<span class="pl-kos">::</span>traits<span class="pl-kos">::</span>project<span class="pl-kos">::</span>project_type<span class="pl-kos">::</span>hcf50d7eec736df9c35P
   <span class="pl-c1">7</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb0222800</span> - middle<span class="pl-kos">::</span>traits<span class="pl-kos">::</span>fulfill<span class="pl-kos">::</span>process_predicate<span class="pl-kos">::</span>h3703aabc133e79cayGP
   <span class="pl-c1">8</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb0221ab0</span> - middle<span class="pl-kos">::</span>traits<span class="pl-kos">::</span>fulfill<span class="pl-kos">::</span><span class="pl-v">FulfillmentContext</span>&lt;$u<span class="pl-kos">{</span><span class="pl-c1">27</span><span class="pl-kos">}</span>tcx$GT$<span class="pl-kos">::</span>select<span class="pl-kos">::</span><span class="pl-smi">h827e4d042486e566SzP</span>
   <span class="pl-c1">9</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb00ee7c0</span> - middle<span class="pl-kos">::</span>traits<span class="pl-kos">::</span>fulfill<span class="pl-kos">::</span><span class="pl-v">FulfillmentContext</span>&lt;$u<span class="pl-kos">{</span><span class="pl-c1">27</span><span class="pl-kos">}</span>tcx$GT$<span class="pl-kos">::</span>select_all_or_error<span class="pl-kos">::</span><span class="pl-smi">heebbe09eddbd26dfDwP</span>
  <span class="pl-c1">10</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1510cd0</span> - check<span class="pl-kos">::</span>compare_impl_method<span class="pl-kos">::</span>h359a8a44e8f8def4Zfk
  <span class="pl-c1">11</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb14ff0b0</span> - check<span class="pl-kos">::</span>check_item<span class="pl-kos">::</span>hfedb86714512d4d8XRj
  <span class="pl-c1">12</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb169d450</span> - check_crate<span class="pl-kos">::</span>unboxed_closure<span class="pl-kos">.</span><span class="pl-c1">39783</span>
  <span class="pl-c1">13</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb16981f0</span> - check_crate<span class="pl-kos">::</span>h7446c5344d10b3c1cGx
  <span class="pl-c1">14</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb23a98d0</span> - driver<span class="pl-kos">::</span>phase_3_run_analysis_passes<span class="pl-kos">::</span>hb59d2d67157ec124gva
  <span class="pl-c1">15</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb2397fb0</span> - driver<span class="pl-kos">::</span>compile_input<span class="pl-kos">::</span>hff9e8d16e3108315vba
  <span class="pl-c1">16</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb24e4900</span> - thunk<span class="pl-kos">::</span><span class="pl-v">F</span><span class="pl-kos">.</span><span class="pl-c1">Invoke</span>&lt;<span class="pl-v">A</span><span class="pl-kos">,</span>$u<span class="pl-kos">{</span><span class="pl-c1">20</span><span class="pl-kos">}</span><span class="pl-v">R</span>$GT$<span class="pl-kos">::</span>invoke<span class="pl-kos">::</span>h10803646332669730367
  <span class="pl-c1">17</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb24e36c0</span> - rt<span class="pl-kos">::</span>unwind<span class="pl-kos">::</span>try<span class="pl-kos">::</span>try_fn<span class="pl-kos">::</span>h3820096971255462672
  <span class="pl-c1">18</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1ef4eb0</span> - rust_try_inner
  <span class="pl-c1">19</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1ef4ea0</span> - rust_try
  <span class="pl-c1">20</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb24e3a10</span> - thunk<span class="pl-kos">::</span><span class="pl-v">F</span><span class="pl-kos">.</span><span class="pl-c1">Invoke</span>&lt;<span class="pl-v">A</span><span class="pl-kos">,</span>$u<span class="pl-kos">{</span><span class="pl-c1">20</span><span class="pl-kos">}</span><span class="pl-v">R</span>$GT$<span class="pl-kos">::</span>invoke<span class="pl-kos">::</span>h15250775183210022334
  <span class="pl-c1">21</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1e7f8d0</span> - sys<span class="pl-kos">::</span>thread<span class="pl-kos">::</span>thread_start<span class="pl-kos">::</span>h7b82ef93cab3e580K1v
  <span class="pl-c1">22</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddaca690c0</span> - start_thread
  <span class="pl-c1">23</span><span class="pl-kos">:</span>     <span class="pl-c1">0x7fddb1aab2d9</span> - __clone
  <span class="pl-c1">24</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>
<p dir="auto"><a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/rust-lang/rust/commit/84f5ad8679c7fc454473ffbf389030f3e5fee379/hovercard" href="https://github.com/rust-lang/rust/commit/84f5ad8679c7fc454473ffbf389030f3e5fee379"><tt>84f5ad8</tt></a></p>
<p dir="auto">cc <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nikomatsakis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nikomatsakis">@nikomatsakis</a></p>