<p dir="auto">Maybe the same as <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="40558658" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/16596" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/16596/hovercard" href="https://github.com/rust-lang/rust/issues/16596">#16596</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="41076878" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/16747" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/16747/hovercard" href="https://github.com/rust-lang/rust/issues/16747">#16747</a>.</p>
<p dir="auto">Source code:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="trait T&lt;A&gt; {
    fn g(&amp;self) -&gt; A;
}

fn f&lt;'a, I&gt;(i: &amp;I) where I: T&lt;&amp;'a mut int&gt; {
    let m = i.g();
    *m = 0;
}

fn main() {
}"><pre class="notranslate"><span class="pl-k">trait</span> <span class="pl-smi">T</span><span class="pl-kos">&lt;</span><span class="pl-smi">A</span><span class="pl-kos">&gt;</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> -&gt; <span class="pl-smi">A</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">f</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">,</span> <span class="pl-smi">I</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-s1">i</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">I</span><span class="pl-kos">)</span> <span class="pl-k">where</span> <span class="pl-smi">I</span><span class="pl-kos">:</span> <span class="pl-smi">T</span><span class="pl-kos">&lt;</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-k">mut</span> <span class="pl-smi">int</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> m = i<span class="pl-kos">.</span><span class="pl-en">g</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-c1">*</span>m = <span class="pl-c1">0</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-kos">}</span></pre></div>
<p dir="auto">The error was:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="1.rs:7:5: 7:7 error: internal compiler error: cannot relate bound region: ReScope(39) &lt;= ReLateBound(14, BrNamed(syntax::ast::DefId{krate: 0u32, node: 22u32}, 'a))
1.rs:7     *m = 0;
           ^~
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 'Box&lt;Any&gt;', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libsyntax/ast_util.rs:776

stack backtrace:
   1:        0x110066445 - rt::backtrace::imp::write::h366f6266fdf568bdyGr
   2:        0x110069613 - failure::on_fail::h88fe37ace38bcbfdrXr
   3:        0x110337595 - unwind::begin_unwind_inner::hc299369ecba80250ufe
   4:        0x10f77a1f2 - unwind::begin_unwind::h17187401900268386611
   5:        0x10f77a185 - diagnostic::SpanHandler::span_bug::hc4d5b52f1c967bf6ivF
   6:        0x10cc5f725 - driver::session::Session::span_bug::h6c43c41cfb84008e7wB
   7:        0x10d132356 - middle::typeck::infer::region_inference::RegionVarBindings&lt;'a&gt;::make_subregion::hbae6a5613e0d55e7EF6
   8:        0x10d007e5b - middle::typeck::infer::mk_subr::h9854397fb7f02758w9d
   9:        0x10d026a81 - middle::typeck::check::regionck::mk_subregion_due_to_dereference::hdf6f4bab0d472a51DTP
  10:        0x10d0221e0 - middle::typeck::check::regionck::visit_expr::hce1244a40687f286B7O
  11:        0x10d02125f - middle::typeck::check::regionck::visit_expr::hce1244a40687f286B7O
  12:        0x10d022a72 - visit::walk_block::h6598311206806335563
  13:        0x10d0674d1 - middle::typeck::check::check_bare_fn::h7d7d7a86e1f5fb72bKT
  14:        0x10d06081b - middle::typeck::check::check_item::hd6ce68bf432b2469jjU
  15:        0x10d06721d - middle::typeck::check::check_item_types::hfd2f317b573de5d4sJT
  16:        0x10ca89756 - util::common::time::h4891267822068557826
  17:        0x10d26600c - middle::typeck::check_crate::h427d4b7c37231ac1Knl
  18:        0x10d332120 - driver::driver::phase_3_run_analysis_passes::h698aabf657364e2bRYz
  19:        0x10d32d113 - driver::driver::compile_input::h5705b3057d4cce45XKz
  20:        0x10d3d5d82 - driver::run_compiler::h2e65061b94ee7affRiD
  21:        0x10d3d4466 - driver::main_args::closure.137815
  22:        0x10d3e65bb - task::TaskBuilder&lt;S&gt;::try_future::closure.138935
  23:        0x10d3e64c5 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.138912
  24:        0x10f68e77c - task::spawn_opts::closure.8437
  25:        0x11039e1ec - rust_try_inner
  26:        0x11039e1d6 - rust_try
  27:        0x11033496b - unwind::try::h0f8db981bd8a4067K3d
  28:        0x11033470b - task::Task::run::h138ea3fe382973ecBad
  29:        0x10f68e5da - task::spawn_opts::closure.8382
  30:        0x110336526 - thread::thread_start::hdebd29a0977e0f01nzd
  31:     0x7fff93089899 - _pthread_body
  32:     0x7fff9308972a - _pthread_struct_init"><pre class="notranslate"><code class="notranslate">1.rs:7:5: 7:7 error: internal compiler error: cannot relate bound region: ReScope(39) &lt;= ReLateBound(14, BrNamed(syntax::ast::DefId{krate: 0u32, node: 22u32}, 'a))
1.rs:7     *m = 0;
           ^~
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 'Box&lt;Any&gt;', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libsyntax/ast_util.rs:776

stack backtrace:
   1:        0x110066445 - rt::backtrace::imp::write::h366f6266fdf568bdyGr
   2:        0x110069613 - failure::on_fail::h88fe37ace38bcbfdrXr
   3:        0x110337595 - unwind::begin_unwind_inner::hc299369ecba80250ufe
   4:        0x10f77a1f2 - unwind::begin_unwind::h17187401900268386611
   5:        0x10f77a185 - diagnostic::SpanHandler::span_bug::hc4d5b52f1c967bf6ivF
   6:        0x10cc5f725 - driver::session::Session::span_bug::h6c43c41cfb84008e7wB
   7:        0x10d132356 - middle::typeck::infer::region_inference::RegionVarBindings&lt;'a&gt;::make_subregion::hbae6a5613e0d55e7EF6
   8:        0x10d007e5b - middle::typeck::infer::mk_subr::h9854397fb7f02758w9d
   9:        0x10d026a81 - middle::typeck::check::regionck::mk_subregion_due_to_dereference::hdf6f4bab0d472a51DTP
  10:        0x10d0221e0 - middle::typeck::check::regionck::visit_expr::hce1244a40687f286B7O
  11:        0x10d02125f - middle::typeck::check::regionck::visit_expr::hce1244a40687f286B7O
  12:        0x10d022a72 - visit::walk_block::h6598311206806335563
  13:        0x10d0674d1 - middle::typeck::check::check_bare_fn::h7d7d7a86e1f5fb72bKT
  14:        0x10d06081b - middle::typeck::check::check_item::hd6ce68bf432b2469jjU
  15:        0x10d06721d - middle::typeck::check::check_item_types::hfd2f317b573de5d4sJT
  16:        0x10ca89756 - util::common::time::h4891267822068557826
  17:        0x10d26600c - middle::typeck::check_crate::h427d4b7c37231ac1Knl
  18:        0x10d332120 - driver::driver::phase_3_run_analysis_passes::h698aabf657364e2bRYz
  19:        0x10d32d113 - driver::driver::compile_input::h5705b3057d4cce45XKz
  20:        0x10d3d5d82 - driver::run_compiler::h2e65061b94ee7affRiD
  21:        0x10d3d4466 - driver::main_args::closure.137815
  22:        0x10d3e65bb - task::TaskBuilder&lt;S&gt;::try_future::closure.138935
  23:        0x10d3e64c5 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.138912
  24:        0x10f68e77c - task::spawn_opts::closure.8437
  25:        0x11039e1ec - rust_try_inner
  26:        0x11039e1d6 - rust_try
  27:        0x11033496b - unwind::try::h0f8db981bd8a4067K3d
  28:        0x11033470b - task::Task::run::h138ea3fe382973ecBad
  29:        0x10f68e5da - task::spawn_opts::closure.8382
  30:        0x110336526 - thread::thread_start::hdebd29a0977e0f01nzd
  31:     0x7fff93089899 - _pthread_body
  32:     0x7fff9308972a - _pthread_struct_init
</code></pre></div>
<p dir="auto">Whereas the equivalent (?) program:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="trait T&lt;A&gt; {
    fn g(&amp;self) -&gt; A;
}

fn f&lt;'a, I: T&lt;&amp;'a mut int&gt;&gt;(i: &amp;I) {
    let m = i.g();
    *m = 0;
}

fn main() {
}"><pre class="notranslate"><span class="pl-k">trait</span> <span class="pl-smi">T</span><span class="pl-kos">&lt;</span><span class="pl-smi">A</span><span class="pl-kos">&gt;</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> -&gt; <span class="pl-smi">A</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">fn</span> <span class="pl-en">f</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">,</span> <span class="pl-smi">I</span><span class="pl-kos">:</span> <span class="pl-smi">T</span><span class="pl-kos">&lt;</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-k">mut</span> <span class="pl-smi">int</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-s1">i</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">I</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> m = i<span class="pl-kos">.</span><span class="pl-en">g</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-c1">*</span>m = <span class="pl-c1">0</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-kos">}</span></pre></div>
<p dir="auto">compiled successfully.</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="$ rustc -v
rustc 0.12.0-pre-nightly (711d71027 2014-08-22 00:56:00 +0000)"><pre class="notranslate">$ rustc -v
rustc 0.12.0-pre-nightly (711d71027 2014-08-22 00:56:00 +0000)</pre></div>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="fn foo&lt;'a, I&gt;(mut it: I) where I: Iterator&lt;&amp;'a int&gt; {}

fn main() {
    foo([1i, 2].iter());
}"><pre class="notranslate"><span class="pl-k">fn</span> <span class="pl-en">foo</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">,</span> <span class="pl-smi">I</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-k">mut</span> <span class="pl-s1">it</span><span class="pl-kos">:</span> <span class="pl-smi">I</span><span class="pl-kos">)</span> <span class="pl-k">where</span> <span class="pl-smi">I</span><span class="pl-kos">:</span> <span class="pl-smi">Iterator</span><span class="pl-kos">&lt;</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-smi">int</span><span class="pl-kos">&gt;</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-en">foo</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">1</span>i<span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">iter</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>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="test.rs:4:5: 4:8 error: internal compiler error: cannot relate bound region: ReLateBound(4, BrNamed(syntax::ast::DefId{krate: 0u32, node: 11u32}, 'a)) &lt;= ReInfer(102)
test.rs:4     foo([1i, 2].iter());
              ^~~
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 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/libsyntax/ast_util.rs:791

stack backtrace:
   1:     0x7f0750d2ba60 - rt::backtrace::imp::write::h915f70b87af05b8cmxr
   2:     0x7f0750d2eb00 - failure::on_fail::h3bfbb66e809f10e63Sr
   3:     0x7f0751505ee0 - unwind::begin_unwind_inner::hdda436f89ca4acd6Zhe
   4:     0x7f074f9450b0 - unwind::begin_unwind::h9125269610435311192
   5:     0x7f074f945000 - diagnostic::SpanHandler::span_bug::hc244fe505535bd433uF
   6:     0x7f0751abd6d0 - driver::session::Session::span_bug::h5df75a538dc01b06ZNA
   7:     0x7f0751f97630 - middle::typeck::infer::region_inference::RegionVarBindings&lt;'a&gt;::make_subregion::h966bcd69e331f8c59W5
   8:     0x7f0751f7d890 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::regions::h03568e631b5674497r8
   9:     0x7f0751f7dc00 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::contraregions::h13956ce561fb5850xr8
  10:     0x7f0751f675a0 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::tys::h8728d19bb6506359xA8
  11:     0x7f0751fabfb0 - middle::typeck::infer::combine::eq_tys::closure.125549
  12:     0x7f0751f64bf0 - middle::typeck::infer::InferCtxt&lt;'a&gt;::try::h8077952307852343475
  13:     0x7f0751fabe30 - middle::typeck::infer::combine::eq_tys::h14537646206334856932
  14:     0x7f0751faa200 - middle::typeck::infer::combine::Combine::substs::h4709403821174409647
  15:     0x7f0751fd6b80 - middle::typeck::infer::mk_sub_trait_refs::closure.126315
  16:     0x7f0751fd68b0 - middle::typeck::infer::InferCtxt&lt;'a&gt;::commit_if_ok::closure.126307
  17:     0x7f0751fd6700 - middle::typeck::infer::InferCtxt&lt;'a&gt;::commit_unconditionally::h4157984422034910170
  18:     0x7f0751e5a3b0 - middle::typeck::infer::mk_sub_trait_refs::hee6f3e0ab4e569e6bxd
  19:     0x7f0751e59d40 - middle::typeck::check::vtable::relate_trait_refs::hf00ee302275f83ffaJL
  20:     0x7f0751e5b050 - middle::typeck::check::vtable::search_for_vtable::h62cb709e3558328eo1L
  21:     0x7f0751e58160 - middle::typeck::check::vtable::lookup_vtables_for_param::closure.121712
  22:     0x7f0751e1d090 - middle::ty::each_bound_trait_and_supertraits::hf6aa2b1412717287BOI
  23:     0x7f0751e57be0 - middle::typeck::check::vtable::lookup_vtables_for_param::h2f3e3aa0d87321fcEuL
  24:     0x7f0751e55a20 - middle::typeck::check::vtable::lookup_vtables::h2b52d443aea8bc88GoL
  25:     0x7f0751e65650 - middle::typeck::check::vtable::early_resolve_expr::closure.121862
  26:     0x7f0751e654c0 - middle::typeck::check::FnCtxt&lt;'a&gt;::opt_node_ty_substs::h73a61f1da9fe6172PXU
  27:     0x7f0751e61970 - middle::typeck::check::vtable::early_resolve_expr::h74a603ae5b2dd414lnM
  28:     0x7f0751f002c0 - middle::typeck::check::check_argument_types::ha6ecc6e8415348b0xmV
  29:     0x7f0751f02960 - middle::typeck::check::check_expr_with_unifier::h7f07d1d05896e44fSXV
  30:     0x7f0751f616a0 - middle::typeck::check::check_stmt::h139e8f1cea959a0502X
  31:     0x7f0751ecb610 - middle::typeck::check::check_block_with_expected::h32b2d067c318c94ad7X
  32:     0x7f0751ec73a0 - middle::typeck::check::check_fn::h11b95bd8147ec11f3dT
  33:     0x7f0751ec70c0 - middle::typeck::check::check_bare_fn::h0b6077c308262260I2S
  34:     0x7f0751ec0220 - middle::typeck::check::check_item::habadeb79d560f4d0QBT
  35:     0x7f0751ec6ec0 - middle::typeck::check::check_item_types::h63a60aa7829eefedZ1S
  36:     0x7f07518df300 - util::common::time::h2328891505148832078
  37:     0x7f07520d4b50 - middle::typeck::check_crate::h266f9d5cd5ece381vFk
  38:     0x7f07521a2180 - driver::driver::phase_3_run_analysis_passes::h53949348bfafe8ffJfz
  39:     0x7f075219d2c0 - driver::driver::compile_input::hd2d14ec13437de9cP1y
  40:     0x7f075224a150 - driver::run_compiler::he03a385a4310d17aJzC
  41:     0x7f075224a060 - driver::main_args::closure.137214
  42:     0x7f075225ca30 - task::TaskBuilder&lt;S&gt;::try_future::closure.138375
  43:     0x7f075225c830 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.138352
  44:     0x7f0752cabb30 - task::spawn_opts::closure.8325
  45:     0x7f075155df70 - rust_try_inner
  46:     0x7f075155df60 - rust_try
  47:     0x7f0751503540 - unwind::try::hc4ccde5733fe2f0cf6d
  48:     0x7f07515032e0 - task::Task::run::h4d1bcb29f70db0c3xcd
  49:     0x7f0752cab8f0 - task::spawn_opts::closure.8271
  50:     0x7f0751505120 - thread::thread_start::h8729f7243e18bd84jBd
  51:     0x7f07507bb060 - start_thread
  52:     0x7f07511d4489 - __clone
  53:                0x0 - &lt;unknown&gt;"><pre class="notranslate"><code class="notranslate">test.rs:4:5: 4:8 error: internal compiler error: cannot relate bound region: ReLateBound(4, BrNamed(syntax::ast::DefId{krate: 0u32, node: 11u32}, 'a)) &lt;= ReInfer(102)
test.rs:4     foo([1i, 2].iter());
              ^~~
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 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/libsyntax/ast_util.rs:791

stack backtrace:
   1:     0x7f0750d2ba60 - rt::backtrace::imp::write::h915f70b87af05b8cmxr
   2:     0x7f0750d2eb00 - failure::on_fail::h3bfbb66e809f10e63Sr
   3:     0x7f0751505ee0 - unwind::begin_unwind_inner::hdda436f89ca4acd6Zhe
   4:     0x7f074f9450b0 - unwind::begin_unwind::h9125269610435311192
   5:     0x7f074f945000 - diagnostic::SpanHandler::span_bug::hc244fe505535bd433uF
   6:     0x7f0751abd6d0 - driver::session::Session::span_bug::h5df75a538dc01b06ZNA
   7:     0x7f0751f97630 - middle::typeck::infer::region_inference::RegionVarBindings&lt;'a&gt;::make_subregion::h966bcd69e331f8c59W5
   8:     0x7f0751f7d890 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::regions::h03568e631b5674497r8
   9:     0x7f0751f7dc00 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::contraregions::h13956ce561fb5850xr8
  10:     0x7f0751f675a0 - middle::typeck::infer::sub::Sub&lt;'f&gt;.Combine::tys::h8728d19bb6506359xA8
  11:     0x7f0751fabfb0 - middle::typeck::infer::combine::eq_tys::closure.125549
  12:     0x7f0751f64bf0 - middle::typeck::infer::InferCtxt&lt;'a&gt;::try::h8077952307852343475
  13:     0x7f0751fabe30 - middle::typeck::infer::combine::eq_tys::h14537646206334856932
  14:     0x7f0751faa200 - middle::typeck::infer::combine::Combine::substs::h4709403821174409647
  15:     0x7f0751fd6b80 - middle::typeck::infer::mk_sub_trait_refs::closure.126315
  16:     0x7f0751fd68b0 - middle::typeck::infer::InferCtxt&lt;'a&gt;::commit_if_ok::closure.126307
  17:     0x7f0751fd6700 - middle::typeck::infer::InferCtxt&lt;'a&gt;::commit_unconditionally::h4157984422034910170
  18:     0x7f0751e5a3b0 - middle::typeck::infer::mk_sub_trait_refs::hee6f3e0ab4e569e6bxd
  19:     0x7f0751e59d40 - middle::typeck::check::vtable::relate_trait_refs::hf00ee302275f83ffaJL
  20:     0x7f0751e5b050 - middle::typeck::check::vtable::search_for_vtable::h62cb709e3558328eo1L
  21:     0x7f0751e58160 - middle::typeck::check::vtable::lookup_vtables_for_param::closure.121712
  22:     0x7f0751e1d090 - middle::ty::each_bound_trait_and_supertraits::hf6aa2b1412717287BOI
  23:     0x7f0751e57be0 - middle::typeck::check::vtable::lookup_vtables_for_param::h2f3e3aa0d87321fcEuL
  24:     0x7f0751e55a20 - middle::typeck::check::vtable::lookup_vtables::h2b52d443aea8bc88GoL
  25:     0x7f0751e65650 - middle::typeck::check::vtable::early_resolve_expr::closure.121862
  26:     0x7f0751e654c0 - middle::typeck::check::FnCtxt&lt;'a&gt;::opt_node_ty_substs::h73a61f1da9fe6172PXU
  27:     0x7f0751e61970 - middle::typeck::check::vtable::early_resolve_expr::h74a603ae5b2dd414lnM
  28:     0x7f0751f002c0 - middle::typeck::check::check_argument_types::ha6ecc6e8415348b0xmV
  29:     0x7f0751f02960 - middle::typeck::check::check_expr_with_unifier::h7f07d1d05896e44fSXV
  30:     0x7f0751f616a0 - middle::typeck::check::check_stmt::h139e8f1cea959a0502X
  31:     0x7f0751ecb610 - middle::typeck::check::check_block_with_expected::h32b2d067c318c94ad7X
  32:     0x7f0751ec73a0 - middle::typeck::check::check_fn::h11b95bd8147ec11f3dT
  33:     0x7f0751ec70c0 - middle::typeck::check::check_bare_fn::h0b6077c308262260I2S
  34:     0x7f0751ec0220 - middle::typeck::check::check_item::habadeb79d560f4d0QBT
  35:     0x7f0751ec6ec0 - middle::typeck::check::check_item_types::h63a60aa7829eefedZ1S
  36:     0x7f07518df300 - util::common::time::h2328891505148832078
  37:     0x7f07520d4b50 - middle::typeck::check_crate::h266f9d5cd5ece381vFk
  38:     0x7f07521a2180 - driver::driver::phase_3_run_analysis_passes::h53949348bfafe8ffJfz
  39:     0x7f075219d2c0 - driver::driver::compile_input::hd2d14ec13437de9cP1y
  40:     0x7f075224a150 - driver::run_compiler::he03a385a4310d17aJzC
  41:     0x7f075224a060 - driver::main_args::closure.137214
  42:     0x7f075225ca30 - task::TaskBuilder&lt;S&gt;::try_future::closure.138375
  43:     0x7f075225c830 - task::TaskBuilder&lt;S&gt;::spawn_internal::closure.138352
  44:     0x7f0752cabb30 - task::spawn_opts::closure.8325
  45:     0x7f075155df70 - rust_try_inner
  46:     0x7f075155df60 - rust_try
  47:     0x7f0751503540 - unwind::try::hc4ccde5733fe2f0cf6d
  48:     0x7f07515032e0 - task::Task::run::h4d1bcb29f70db0c3xcd
  49:     0x7f0752cab8f0 - task::spawn_opts::closure.8271
  50:     0x7f0751505120 - thread::thread_start::h8729f7243e18bd84jBd
  51:     0x7f07507bb060 - start_thread
  52:     0x7f07511d4489 - __clone
  53:                0x0 - &lt;unknown&gt;
</code></pre></div>
<p dir="auto">changing <code class="notranslate">foo</code> to use the old syntax allows the program to compile:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="fn foo&lt;'a, I: Iterator&lt;&amp;'a int&gt;&gt;(mut it: I) {}

fn main() {
    foo([1i, 2].iter());
}"><pre class="notranslate"><span class="pl-k">fn</span> <span class="pl-en">foo</span><span class="pl-kos">&lt;</span><span class="pl-c1">'</span><span class="pl-ent">a</span><span class="pl-kos">,</span> <span class="pl-smi">I</span><span class="pl-kos">:</span> <span class="pl-smi">Iterator</span><span class="pl-kos">&lt;</span><span class="pl-c1">&amp;</span><span class="pl-c1">'</span><span class="pl-ent">a</span> <span class="pl-smi">int</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span><span class="pl-kos">(</span><span class="pl-k">mut</span> <span class="pl-s1">it</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-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-en">foo</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">1</span>i<span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-en">iter</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>