<p dir="auto">Got another ICE, this time it only shows itself when compiled with debug info (rustc -g error.rs).<br>
Also of note is that another ICE shows itself if the State wrapper is removed (I can file a separate report for that if you want but I figure they might be the same issue).</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="struct State&lt;I&gt;;

trait Parser {
    type Input;
}

impl Parser for ()  {
    type Input = ();
}

struct IntoIter&lt;P: Parser&gt; {
    input: State&lt;&lt;P as Parser&gt;::Input&gt;
}

fn main() {
    let p  = IntoIter::&lt;()&gt; { input: State::&lt;()&gt; };
}
//Compile with rustc error.rs -g
"><pre class="notranslate"><span class="pl-k">struct</span> <span class="pl-smi">State</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-k">trait</span> <span class="pl-smi">Parser</span> <span class="pl-kos">{</span>
    <span class="pl-k">type</span> <span class="pl-smi">Input</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">impl</span> <span class="pl-smi">Parser</span> <span class="pl-k">for</span> <span class="pl-kos">(</span><span class="pl-kos">)</span>  <span class="pl-kos">{</span>
    <span class="pl-k">type</span> <span class="pl-smi">Input</span> = <span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">struct</span> <span class="pl-smi">IntoIter</span><span class="pl-kos">&lt;</span><span class="pl-smi">P</span><span class="pl-kos">:</span> <span class="pl-smi">Parser</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-c1">input</span><span class="pl-kos">:</span> <span class="pl-smi">State</span><span class="pl-kos">&lt;</span>&lt;<span class="pl-smi">P</span> <span class="pl-k">as</span> <span class="pl-smi">Parser</span>&gt;<span class="pl-kos">::</span><span class="pl-smi">Input</span><span class="pl-kos">&gt;</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> p  = <span class="pl-smi">IntoIter</span><span class="pl-kos">::</span><span class="pl-kos">&lt;</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span> <span class="pl-c1">input</span><span class="pl-kos">:</span> <span class="pl-v">State</span><span class="pl-kos">::</span><span class="pl-kos">&lt;</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">&gt;</span> <span class="pl-kos">}</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-c">//Compile with rustc error.rs -g</span></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="error: internal compiler error: get_unique_type_id_of_type() - unexpected type:
&lt;() as Parser&gt;::Input, ty_projection(ProjectionTy { trait_ref: Rc(TraitRef { def_id: DefId { krate: 0u32, node: 8u32 }, substs: Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [TyS { sty: ty_tup([]), flags: 0, region_depth: 0u32 }], FnSpace: [], }, regions: NonerasedRegions(VecPerParamSpace {TypeSpace: [],
SelfSpace: [], FnSpace: [], }) } }), item_name: &quot;Input&quot;(64) })
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;', C:\bot\slave\nightly-dist-rustc-win-64\build\src\libsyntax\diagnostic.rs:182

stack backtrace:
   1:         0x69bec997 - sys::backtrace::write::h62d87c63e18a3ea5JRt
   2:         0x69c00672 - rt::unwind::register::haa3a38fa07bfa9beVGz
   3:         0x69b834a7 - rt::unwind::begin_unwind_inner::hbebf9f8c0125ffc9tEz
   4:         0x6f898116 - diagnostic::SpanHandler::span_bug::hebc2106d060dd9d6xSF
   5:         0x6f8989c5 - diagnostic::Handler::bug::hd75d92a08fdf3c17DYF
   6:           0x801852 - session::Session::bug::h9385caa3fe1c8dc3wQq
   7:          0x11467b7 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
   8:          0x114a57a - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
   9:          0x1147448 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  10:          0x114c721 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  11:          0x1154a87 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  12:          0x11545ca - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  13:          0x11504ef - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  14:          0x11531f4 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  15:          0x114d472 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  16:          0x114eaa2 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  17:          0x114e2bf - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  18:          0x1033554 - trans::cleanup::FunctionContext&lt;'blk, 'tcx&gt;.CleanupMethods&lt;'blk, 'tcx&gt;::pop_and_trans_ast_cleanup_scope::h80e56e364b2716daMFK
  19:          0x10fd20a - trans::base::IsUnboxedClosureFlag...std..clone..Clone::clone::h7d2a86d65666b43aQYt
  20:          0x101e571 - trans::context::CrateContext&lt;'b, 'tcx&gt;::sess::h6fdd1e7dea5490cdItm
  21:          0x1019cc3 - trans::context::CrateContext&lt;'b, 'tcx&gt;::stats::hd7a1dc7a2465d605EGm
  22:          0x1103768 - trans::base::trans_crate::h4bc502f506e6c118Wsv
  23:         0x70b2af6a - driver::phase_4_translate_to_llvm::haa9c5e826483e242PFa
  24:         0x70b03623 - driver::compile_input::hf5b2f58693da03b5xba
  25:         0x70bd1eec - run::ha65e56249318cc0dV3b
  26:         0x70bd04cc - run::ha65e56249318cc0dV3b
  27:         0x70bcf16a - run::ha65e56249318cc0dV3b
  28:         0x69c2881c - rust_try
  29:         0x69c287f9 - rust_try
  30:         0x70bcf854 - run::ha65e56249318cc0dV3b
  31:         0x69bf14a7 - sys::tcp::TcpListener::bind::hc4a8da4adad0f541bsw
  32:     0x7fff4c8816ad - BaseThreadInitThunk"><pre class="notranslate"><code class="notranslate">error: internal compiler error: get_unique_type_id_of_type() - unexpected type:
&lt;() as Parser&gt;::Input, ty_projection(ProjectionTy { trait_ref: Rc(TraitRef { def_id: DefId { krate: 0u32, node: 8u32 }, substs: Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [TyS { sty: ty_tup([]), flags: 0, region_depth: 0u32 }], FnSpace: [], }, regions: NonerasedRegions(VecPerParamSpace {TypeSpace: [],
SelfSpace: [], FnSpace: [], }) } }), item_name: "Input"(64) })
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;', C:\bot\slave\nightly-dist-rustc-win-64\build\src\libsyntax\diagnostic.rs:182

stack backtrace:
   1:         0x69bec997 - sys::backtrace::write::h62d87c63e18a3ea5JRt
   2:         0x69c00672 - rt::unwind::register::haa3a38fa07bfa9beVGz
   3:         0x69b834a7 - rt::unwind::begin_unwind_inner::hbebf9f8c0125ffc9tEz
   4:         0x6f898116 - diagnostic::SpanHandler::span_bug::hebc2106d060dd9d6xSF
   5:         0x6f8989c5 - diagnostic::Handler::bug::hd75d92a08fdf3c17DYF
   6:           0x801852 - session::Session::bug::h9385caa3fe1c8dc3wQq
   7:          0x11467b7 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
   8:          0x114a57a - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
   9:          0x1147448 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  10:          0x114c721 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  11:          0x1154a87 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  12:          0x11545ca - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  13:          0x11504ef - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  14:          0x11531f4 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  15:          0x114d472 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  16:          0x114eaa2 - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  17:          0x114e2bf - trans::debuginfo::UniqueTypeId...std..fmt..Show::fmt::h6619b90c5d2210b6NBD
  18:          0x1033554 - trans::cleanup::FunctionContext&lt;'blk, 'tcx&gt;.CleanupMethods&lt;'blk, 'tcx&gt;::pop_and_trans_ast_cleanup_scope::h80e56e364b2716daMFK
  19:          0x10fd20a - trans::base::IsUnboxedClosureFlag...std..clone..Clone::clone::h7d2a86d65666b43aQYt
  20:          0x101e571 - trans::context::CrateContext&lt;'b, 'tcx&gt;::sess::h6fdd1e7dea5490cdItm
  21:          0x1019cc3 - trans::context::CrateContext&lt;'b, 'tcx&gt;::stats::hd7a1dc7a2465d605EGm
  22:          0x1103768 - trans::base::trans_crate::h4bc502f506e6c118Wsv
  23:         0x70b2af6a - driver::phase_4_translate_to_llvm::haa9c5e826483e242PFa
  24:         0x70b03623 - driver::compile_input::hf5b2f58693da03b5xba
  25:         0x70bd1eec - run::ha65e56249318cc0dV3b
  26:         0x70bd04cc - run::ha65e56249318cc0dV3b
  27:         0x70bcf16a - run::ha65e56249318cc0dV3b
  28:         0x69c2881c - rust_try
  29:         0x69c287f9 - rust_try
  30:         0x70bcf854 - run::ha65e56249318cc0dV3b
  31:         0x69bf14a7 - sys::tcp::TcpListener::bind::hc4a8da4adad0f541bsw
  32:     0x7fff4c8816ad - BaseThreadInitThunk
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc 1.0.0-nightly (44a287e6e 2015-01-08 17:03:40 -0800)
binary: rustc
commit-hash: 44a287e6eb22ec3c2a687fc156813577464017f7
commit-date: 2015-01-08 17:03:40 -0800
host: x86_64-pc-windows-gnu
release: 1.0.0-nightly"><pre class="notranslate"><code class="notranslate">rustc 1.0.0-nightly (44a287e6e 2015-01-08 17:03:40 -0800)
binary: rustc
commit-hash: 44a287e6eb22ec3c2a687fc156813577464017f7
commit-date: 2015-01-08 17:03:40 -0800
host: x86_64-pc-windows-gnu
release: 1.0.0-nightly
</code></pre></div>
<p dir="auto">I thought that my example in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="53175754" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/20368" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/20368/hovercard" href="https://github.com/rust-lang/rust/issues/20368">#20368</a> was sufficient to cover one of my desired uses of associated types, but, while that example does now successfully compile, the module I really wanted to improve still fails with yet another ICE. Here's the module in full:</p>
<div class="highlight highlight-source-rust notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="    use std::default::Default;
    use std::io::IoResult;
    use std::io::fs;
    use std::io::fs::PathExtensions;

    /// A strategy for acquiring more subpaths to walk.
    pub trait Strategy {
      type P: PathExtensions;
      /// Get additional subpaths from a given path.
      fn get_more(&amp;self, item: &amp;Self::P) -&gt; IoResult&lt;Vec&lt;Self::P&gt;&gt;;
      /// Determine whether a path should be walked further.
      /// This is run against each item from `get_more()`.
      fn prune(&amp;self, p: &amp;Self::P) -&gt; bool;
    }

    /// The basic fully-recursive strategy. Nothing is pruned.
    #[derive(Copy, Default)]
    pub struct Recursive;

    impl Strategy for Recursive {
      type P = Path;
      fn get_more(&amp;self, p: &amp;Path) -&gt; IoResult&lt;Vec&lt;Path&gt;&gt; { fs::readdir(p) }

      fn prune(&amp;self, _: &amp;Path) -&gt; bool { false }
    }

    /// A directory walker of `P` using strategy `S`.
    pub struct Subpaths&lt;S: Strategy&gt; {
        stack: Vec&lt;S::P&gt;,
        strategy: S,
    }

    impl&lt;S: Strategy&gt; Subpaths&lt;S&gt; {
      /// Create a directory walker with a root path and strategy.
      pub fn new(p: &amp;S::P, strategy: S) -&gt; IoResult&lt;Subpaths&lt;S&gt;&gt; {
        let stack = try!(strategy.get_more(p));
        Ok(Subpaths { stack: stack, strategy: strategy })
      }
    }

    impl&lt;S: Default + Strategy&gt; Subpaths&lt;S&gt; {
      /// Create a directory walker with a root path and a default strategy.
      pub fn walk(p: &amp;S::P) -&gt; IoResult&lt;Subpaths&lt;S&gt;&gt; {
          Subpaths::new(p, Default::default())
      }
    }

    impl&lt;S: Default + Strategy&gt; Default for Subpaths&lt;S&gt; {
      fn default() -&gt; Subpaths&lt;S&gt; {
        Subpaths { stack: Vec::new(), strategy: Default::default() }
      }
    }

    impl&lt;S: Strategy&gt; Iterator for Subpaths&lt;S&gt; {
      type Item = S::P;
      fn next (&amp;mut self) -&gt; Option&lt;S::P&gt; {
        let mut opt_path = self.stack.pop();
        while opt_path.is_some() &amp;&amp; self.strategy.prune(opt_path.as_ref().unwrap()) {
          opt_path = self.stack.pop();
        }
        match opt_path {
          Some(path) =&gt; {
            if PathExtensions::is_dir(&amp;path) {
              let result = self.strategy.get_more(&amp;path);
              match result {
                Ok(dirs) =&gt; { self.stack.extend(dirs.into_iter()); },
                Err(..) =&gt; { }
              }
            }
            Some(path)
          }
          None =&gt; None,
        }
      }
    }

    #[test]
    fn woot() {
      let mut walker: Subpaths&lt;Recursive&gt; = Subpaths::walk(&amp;Path::new(&quot;/home&quot;)).unwrap();
    }"><pre class="notranslate">    <span class="pl-k">use</span> std<span class="pl-kos">::</span>default<span class="pl-kos">::</span><span class="pl-v">Default</span><span class="pl-kos">;</span>
    <span class="pl-k">use</span> std<span class="pl-kos">::</span>io<span class="pl-kos">::</span><span class="pl-v">IoResult</span><span class="pl-kos">;</span>
    <span class="pl-k">use</span> std<span class="pl-kos">::</span>io<span class="pl-kos">::</span>fs<span class="pl-kos">;</span>
    <span class="pl-k">use</span> std<span class="pl-kos">::</span>io<span class="pl-kos">::</span>fs<span class="pl-kos">::</span><span class="pl-v">PathExtensions</span><span class="pl-kos">;</span>

    <span class="pl-c">/// A strategy for acquiring more subpaths to walk.</span>
    <span class="pl-k">pub</span> <span class="pl-k">trait</span> <span class="pl-smi">Strategy</span> <span class="pl-kos">{</span>
      <span class="pl-k">type</span> <span class="pl-smi">P</span><span class="pl-kos">:</span> <span class="pl-smi">PathExtensions</span><span class="pl-kos">;</span>
      <span class="pl-c">/// Get additional subpaths from a given path.</span>
      <span class="pl-k">fn</span> <span class="pl-en">get_more</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">self</span><span class="pl-kos">,</span> <span class="pl-s1">item</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Self</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">IoResult</span><span class="pl-kos">&lt;</span><span class="pl-smi">Vec</span><span class="pl-kos">&lt;</span><span class="pl-smi">Self</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span><span class="pl-kos">;</span>
      <span class="pl-c">/// Determine whether a path should be walked further.</span>
      <span class="pl-c">/// This is run against each item from `get_more()`.</span>
      <span class="pl-k">fn</span> <span class="pl-en">prune</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">self</span><span class="pl-kos">,</span> <span class="pl-s1">p</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Self</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">bool</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>

    <span class="pl-c">/// The basic fully-recursive strategy. Nothing is pruned.</span>
    <span class="pl-c1">#<span class="pl-kos">[</span>derive<span class="pl-kos">(</span><span class="pl-v">Copy</span><span class="pl-kos">,</span> <span class="pl-v">Default</span><span class="pl-kos">)</span><span class="pl-kos">]</span></span>
    <span class="pl-k">pub</span> <span class="pl-k">struct</span> <span class="pl-smi">Recursive</span><span class="pl-kos">;</span>

    <span class="pl-k">impl</span> <span class="pl-smi">Strategy</span> <span class="pl-k">for</span> <span class="pl-smi">Recursive</span> <span class="pl-kos">{</span>
      <span class="pl-k">type</span> <span class="pl-smi">P</span> = <span class="pl-smi">Path</span><span class="pl-kos">;</span>
      <span class="pl-k">fn</span> <span class="pl-en">get_more</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">self</span><span class="pl-kos">,</span> <span class="pl-s1">p</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Path</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">IoResult</span><span class="pl-kos">&lt;</span><span class="pl-smi">Vec</span><span class="pl-kos">&lt;</span><span class="pl-smi">Path</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span> fs<span class="pl-kos">::</span><span class="pl-en">readdir</span><span class="pl-kos">(</span>p<span class="pl-kos">)</span> <span class="pl-kos">}</span>

      <span class="pl-k">fn</span> <span class="pl-en">prune</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">self</span><span class="pl-kos">,</span> _<span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">Path</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">bool</span> <span class="pl-kos">{</span> <span class="pl-c1">false</span> <span class="pl-kos">}</span>
    <span class="pl-kos">}</span>

    <span class="pl-c">/// A directory walker of `P` using strategy `S`.</span>
    <span class="pl-k">pub</span> <span class="pl-k">struct</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">:</span> <span class="pl-smi">Strategy</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-c1">stack</span><span class="pl-kos">:</span> <span class="pl-smi">Vec</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">&gt;</span><span class="pl-kos">,</span>
        <span class="pl-c1">strategy</span><span class="pl-kos">:</span> <span class="pl-smi">S</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">S</span><span class="pl-kos">:</span> <span class="pl-smi">Strategy</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
      <span class="pl-c">/// Create a directory walker with a root path and strategy.</span>
      <span class="pl-k">pub</span> <span class="pl-k">fn</span> <span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-s1">p</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">S</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">,</span> <span class="pl-s1">strategy</span><span class="pl-kos">:</span> <span class="pl-smi">S</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">IoResult</span><span class="pl-kos">&lt;</span><span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-k">let</span> stack = <span class="pl-en">try</span><span class="pl-en">!</span><span class="pl-kos">(</span>strategy.get_more<span class="pl-kos">(</span>p<span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
        <span class="pl-v">Ok</span><span class="pl-kos">(</span><span class="pl-smi">Subpaths</span> <span class="pl-kos">{</span> <span class="pl-c1">stack</span><span class="pl-kos">:</span> stack<span class="pl-kos">,</span> <span class="pl-c1">strategy</span><span class="pl-kos">:</span> strategy <span class="pl-kos">}</span><span class="pl-kos">)</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">S</span><span class="pl-kos">:</span> <span class="pl-smi">Default</span> + <span class="pl-smi">Strategy</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
      <span class="pl-c">/// Create a directory walker with a root path and a default strategy.</span>
      <span class="pl-k">pub</span> <span class="pl-k">fn</span> <span class="pl-en">walk</span><span class="pl-kos">(</span><span class="pl-s1">p</span><span class="pl-kos">:</span> <span class="pl-c1">&amp;</span><span class="pl-smi">S</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">IoResult</span><span class="pl-kos">&lt;</span><span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
          <span class="pl-smi">Subpaths</span><span class="pl-kos">::</span><span class="pl-en">new</span><span class="pl-kos">(</span>p<span class="pl-kos">,</span> <span class="pl-smi">Default</span><span class="pl-kos">::</span><span class="pl-en">default</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-k">impl</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">:</span> <span class="pl-smi">Default</span> + <span class="pl-smi">Strategy</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Default</span> <span class="pl-k">for</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
      <span class="pl-k">fn</span> <span class="pl-en">default</span><span class="pl-kos">(</span><span class="pl-kos">)</span> -&gt; <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-smi">Subpaths</span> <span class="pl-kos">{</span> <span class="pl-c1">stack</span><span class="pl-kos">:</span> <span class="pl-smi">Vec</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-c1">strategy</span><span class="pl-kos">:</span> <span class="pl-smi">Default</span><span class="pl-kos">::</span><span class="pl-en">default</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-k">impl</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">:</span> <span class="pl-smi">Strategy</span><span class="pl-kos">&gt;</span> <span class="pl-smi">Iterator</span> <span class="pl-k">for</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">S</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
      <span class="pl-k">type</span> <span class="pl-smi">Item</span> = <span class="pl-smi">S</span><span class="pl-kos">::</span><span class="pl-smi">P</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">S</span><span class="pl-kos">::</span><span class="pl-smi">P</span><span class="pl-kos">&gt;</span> <span class="pl-kos">{</span>
        <span class="pl-k">let</span> <span class="pl-k">mut</span> opt_path = <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">stack</span><span class="pl-kos">.</span><span class="pl-en">pop</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
        <span class="pl-k">while</span> opt_path<span class="pl-kos">.</span><span class="pl-en">is_some</span><span class="pl-kos">(</span><span class="pl-kos">)</span> &amp;&amp; <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">strategy</span><span class="pl-kos">.</span><span class="pl-en">prune</span><span class="pl-kos">(</span>opt_path<span class="pl-kos">.</span><span class="pl-en">as_ref</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">unwrap</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
          opt_path = <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">stack</span><span class="pl-kos">.</span><span class="pl-en">pop</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
        <span class="pl-kos">}</span>
        <span class="pl-k">match</span> opt_path <span class="pl-kos">{</span>
          <span class="pl-v">Some</span><span class="pl-kos">(</span>path<span class="pl-kos">)</span> =&gt; <span class="pl-kos">{</span>
            <span class="pl-k">if</span> <span class="pl-smi">PathExtensions</span><span class="pl-kos">::</span><span class="pl-en">is_dir</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span>path<span class="pl-kos">)</span> <span class="pl-kos">{</span>
              <span class="pl-k">let</span> result = <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">strategy</span><span class="pl-kos">.</span><span class="pl-en">get_more</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span>path<span class="pl-kos">)</span><span class="pl-kos">;</span>
              <span class="pl-k">match</span> result <span class="pl-kos">{</span>
                <span class="pl-v">Ok</span><span class="pl-kos">(</span>dirs<span class="pl-kos">)</span> =&gt; <span class="pl-kos">{</span> <span class="pl-smi">self</span><span class="pl-kos">.</span><span class="pl-c1">stack</span><span class="pl-kos">.</span><span class="pl-en">extend</span><span class="pl-kos">(</span>dirs<span class="pl-kos">.</span><span class="pl-en">into_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><span class="pl-kos">,</span>
                <span class="pl-v">Err</span><span class="pl-kos">(</span>..<span class="pl-kos">)</span> =&gt; <span class="pl-kos">{</span> <span class="pl-kos">}</span>
              <span class="pl-kos">}</span>
            <span class="pl-kos">}</span>
            <span class="pl-v">Some</span><span class="pl-kos">(</span>path<span class="pl-kos">)</span>
          <span class="pl-kos">}</span>
          <span class="pl-v">None</span> =&gt; <span class="pl-v">None</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>test<span class="pl-kos">]</span></span>
    <span class="pl-k">fn</span> <span class="pl-en">woot</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-k">mut</span> walker<span class="pl-kos">:</span> <span class="pl-smi">Subpaths</span><span class="pl-kos">&lt;</span><span class="pl-smi">Recursive</span><span class="pl-kos">&gt;</span> = <span class="pl-smi">Subpaths</span><span class="pl-kos">::</span><span class="pl-en">walk</span><span class="pl-kos">(</span><span class="pl-c1">&amp;</span><span class="pl-smi">Path</span><span class="pl-kos">::</span><span class="pl-en">new</span><span class="pl-kos">(</span><span class="pl-s">"/home"</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">unwrap</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">Here's the error and backtrace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="error: internal compiler error: get_unique_type_id_of_type() - unexpected type: &lt;Recursive as Strategy&gt;::P, ty_projection(ProjectionTy { trait_ref: Rc(TraitRef { def_id: DefId { krate: 0u32, node: 8u32 }, substs: Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [TyS { sty: ty_struct(DefId { krate: 0u32, node: 40u32 }, Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }, regions: ErasedRegions }), flags: 0, region_depth: 0u32 }], FnSpace: [], }, regions: NonerasedRegions(VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }) } }), item_name: &quot;P&quot;(73) })
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/samuel/rust/src/libsyntax/diagnostic.rs:182

stack backtrace:
   1:     0x7f4a265a0570 - sys::backtrace::write::h3452feb04e320bcfCzt
   2:     0x7f4a265c2780 - failure::on_fail::hd0efae8686875716aPz
   3:     0x7f4a26530300 - rt::unwind::begin_unwind_inner::h229232f5734654792tz
   4:     0x7f4a214ada20 - rt::unwind::begin_unwind::h9438643137198476843
   5:     0x7f4a214ae2d0 - diagnostic::Handler::bug::he657a4296d705a33tWF
   6:     0x7f4a2488f180 - session::Session::bug::ha8836431c543757ciRq
   7:     0x7f4a25673ba0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::h606c89215412cd5brGD
   8:     0x7f4a256778d0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::from_def_id_and_substs::h9fa1f90635ed12d03PD
   9:     0x7f4a25673ba0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::h606c89215412cd5brGD
  10:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  11:     0x7f4a25682220 - trans::debuginfo::StructMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45598
  12:     0x7f4a25681e00 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h9648212210143919248
  13:     0x7f4a2567dda0 - trans::debuginfo::StructMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::hf79fdc4d3167c5d0j9E
  14:     0x7f4a25680980 - trans::debuginfo::RecursiveTypeDescription&lt;'tcx&gt;::finalize::h0ff9cf1ab1bdbcef26E
  15:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  16:     0x7f4a25684fd0 - trans::debuginfo::VariantMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45632
  17:     0x7f4a25684be0 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h5453357870208096995
  18:     0x7f4a25683270 - trans::debuginfo::EnumMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45606
  19:     0x7f4a25682e50 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h13188062602912948975
  20:     0x7f4a2567de90 - trans::debuginfo::EnumMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::h1355d0387a727939hgF
  21:     0x7f4a25680980 - trans::debuginfo::RecursiveTypeDescription&lt;'tcx&gt;::finalize::h0ff9cf1ab1bdbcef26E
  22:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  23:     0x7f4a25688070 - trans::debuginfo::subroutine_type_metadata::haec4c13f9a5d7a59vOF
  24:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  25:     0x7f4a25620ae0 - trans::debuginfo::create_function_debug_context::h985b11ad61da52fdwsE
  26:     0x7f4a25580890 - trans::base::new_fn_ctxt::hbe79965b1049ecf2Zxt
  27:     0x7f4a25626410 - trans::base::trans_closure::h5c0a7253f08a6c1bEYt
  28:     0x7f4a255452b0 - trans::base::trans_fn::h84cc11dd50b05f50j9t
  29:     0x7f4a25545710 - trans::monomorphize::monomorphic_fn::h44708ba9400c75dbFpd
  30:     0x7f4a25597ff0 - trans::callee::trans_fn_ref_with_substs::h1741ea29b53c270fGxg
  31:     0x7f4a25596590 - trans::callee::trans_fn_ref::h611f01f0cbdf2e42Rlg
  32:     0x7f4a25593870 - trans::callee::trans::h2d6fbfb713fd152ayag
  33:     0x7f4a2559da90 - trans::callee::trans_call_inner::h893956557312987459
  34:     0x7f4a255a34b0 - trans::expr::trans_rvalue_dps_unadjusted::h4ab35d4af002299e1Si
  35:     0x7f4a255a2790 - trans::expr::trans_unadjusted::h15f19eba475549d3Oji
  36:     0x7f4a2555b000 - trans::expr::trans::ha962b869e642f0b8eCh
  37:     0x7f4a2556c0b0 - trans::callee::trans_args::h2dbfd3d1c7128174xch
  38:     0x7f4a2559f460 - trans::callee::trans_call_inner::h11730372111330536098
  39:     0x7f4a255a34b0 - trans::expr::trans_rvalue_dps_unadjusted::h4ab35d4af002299e1Si
  40:     0x7f4a25559d90 - trans::expr::trans_into::h70023b40e1df277dKyh
  41:     0x7f4a2565e030 - trans::_match::mk_binding_alloca::h14708251032129145358
  42:     0x7f4a25559390 - trans::base::init_local::h17113ff3a822f41bC7s
  43:     0x7f4a2555a3e0 - trans::controlflow::trans_block::hd4046f45161d1f00B3d
  44:     0x7f4a25626410 - trans::base::trans_closure::h5c0a7253f08a6c1bEYt
  45:     0x7f4a255452b0 - trans::base::trans_fn::h84cc11dd50b05f50j9t
  46:     0x7f4a25540840 - trans::base::trans_item::h560b1558a6cec5e6Ewu
  47:     0x7f4a2562dc30 - trans::base::trans_crate::heb94c899d24982b8lsv
  48:     0x7f4a26b09fa0 - driver::phase_4_translate_to_llvm::h4be77ff61772864dPFa
  49:     0x7f4a26ae3f30 - driver::compile_input::hefa96b3bea08e00bxba
  50:     0x7f4a26bb3bc0 - monitor::unboxed_closure.22498
  51:     0x7f4a26bb3a20 - thunk::F.Invoke&lt;A, R&gt;::invoke::h2604081160332846052
  52:     0x7f4a26bb27a0 - rt::unwind::try::try_fn::h10712615664574212328
  53:     0x7f4a26630f00 - rust_try_inner
  54:     0x7f4a26630ef0 - rust_try
  55:     0x7f4a26bb2a90 - thunk::F.Invoke&lt;A, R&gt;::invoke::h6088602545528080049
  56:     0x7f4a265b0630 - sys::thread::thread_start::h803dac673dcdb1abqrw
  57:     0x7f4a20cc7250 - start_thread
  58:     0x7f4a261e0219 - clone
  59:                0x0 - &lt;unknown&gt;

Could not compile `subpaths`."><pre class="notranslate"><code class="notranslate">error: internal compiler error: get_unique_type_id_of_type() - unexpected type: &lt;Recursive as Strategy&gt;::P, ty_projection(ProjectionTy { trait_ref: Rc(TraitRef { def_id: DefId { krate: 0u32, node: 8u32 }, substs: Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [TyS { sty: ty_struct(DefId { krate: 0u32, node: 40u32 }, Substs { types: VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }, regions: ErasedRegions }), flags: 0, region_depth: 0u32 }], FnSpace: [], }, regions: NonerasedRegions(VecPerParamSpace {TypeSpace: [], SelfSpace: [], FnSpace: [], }) } }), item_name: "P"(73) })
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/samuel/rust/src/libsyntax/diagnostic.rs:182

stack backtrace:
   1:     0x7f4a265a0570 - sys::backtrace::write::h3452feb04e320bcfCzt
   2:     0x7f4a265c2780 - failure::on_fail::hd0efae8686875716aPz
   3:     0x7f4a26530300 - rt::unwind::begin_unwind_inner::h229232f5734654792tz
   4:     0x7f4a214ada20 - rt::unwind::begin_unwind::h9438643137198476843
   5:     0x7f4a214ae2d0 - diagnostic::Handler::bug::he657a4296d705a33tWF
   6:     0x7f4a2488f180 - session::Session::bug::ha8836431c543757ciRq
   7:     0x7f4a25673ba0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::h606c89215412cd5brGD
   8:     0x7f4a256778d0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::from_def_id_and_substs::h9fa1f90635ed12d03PD
   9:     0x7f4a25673ba0 - trans::debuginfo::TypeMap&lt;'tcx&gt;::get_unique_type_id_of_type::h606c89215412cd5brGD
  10:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  11:     0x7f4a25682220 - trans::debuginfo::StructMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45598
  12:     0x7f4a25681e00 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h9648212210143919248
  13:     0x7f4a2567dda0 - trans::debuginfo::StructMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::hf79fdc4d3167c5d0j9E
  14:     0x7f4a25680980 - trans::debuginfo::RecursiveTypeDescription&lt;'tcx&gt;::finalize::h0ff9cf1ab1bdbcef26E
  15:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  16:     0x7f4a25684fd0 - trans::debuginfo::VariantMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45632
  17:     0x7f4a25684be0 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h5453357870208096995
  18:     0x7f4a25683270 - trans::debuginfo::EnumMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::unboxed_closure.45606
  19:     0x7f4a25682e50 - vec::Vec&lt;T&gt;.FromIterator&lt;T&gt;::from_iter::h13188062602912948975
  20:     0x7f4a2567de90 - trans::debuginfo::EnumMemberDescriptionFactory&lt;'tcx&gt;::create_member_descriptions::h1355d0387a727939hgF
  21:     0x7f4a25680980 - trans::debuginfo::RecursiveTypeDescription&lt;'tcx&gt;::finalize::h0ff9cf1ab1bdbcef26E
  22:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  23:     0x7f4a25688070 - trans::debuginfo::subroutine_type_metadata::haec4c13f9a5d7a59vOF
  24:     0x7f4a25679e30 - trans::debuginfo::type_metadata::h7557684678d0dd25RSF
  25:     0x7f4a25620ae0 - trans::debuginfo::create_function_debug_context::h985b11ad61da52fdwsE
  26:     0x7f4a25580890 - trans::base::new_fn_ctxt::hbe79965b1049ecf2Zxt
  27:     0x7f4a25626410 - trans::base::trans_closure::h5c0a7253f08a6c1bEYt
  28:     0x7f4a255452b0 - trans::base::trans_fn::h84cc11dd50b05f50j9t
  29:     0x7f4a25545710 - trans::monomorphize::monomorphic_fn::h44708ba9400c75dbFpd
  30:     0x7f4a25597ff0 - trans::callee::trans_fn_ref_with_substs::h1741ea29b53c270fGxg
  31:     0x7f4a25596590 - trans::callee::trans_fn_ref::h611f01f0cbdf2e42Rlg
  32:     0x7f4a25593870 - trans::callee::trans::h2d6fbfb713fd152ayag
  33:     0x7f4a2559da90 - trans::callee::trans_call_inner::h893956557312987459
  34:     0x7f4a255a34b0 - trans::expr::trans_rvalue_dps_unadjusted::h4ab35d4af002299e1Si
  35:     0x7f4a255a2790 - trans::expr::trans_unadjusted::h15f19eba475549d3Oji
  36:     0x7f4a2555b000 - trans::expr::trans::ha962b869e642f0b8eCh
  37:     0x7f4a2556c0b0 - trans::callee::trans_args::h2dbfd3d1c7128174xch
  38:     0x7f4a2559f460 - trans::callee::trans_call_inner::h11730372111330536098
  39:     0x7f4a255a34b0 - trans::expr::trans_rvalue_dps_unadjusted::h4ab35d4af002299e1Si
  40:     0x7f4a25559d90 - trans::expr::trans_into::h70023b40e1df277dKyh
  41:     0x7f4a2565e030 - trans::_match::mk_binding_alloca::h14708251032129145358
  42:     0x7f4a25559390 - trans::base::init_local::h17113ff3a822f41bC7s
  43:     0x7f4a2555a3e0 - trans::controlflow::trans_block::hd4046f45161d1f00B3d
  44:     0x7f4a25626410 - trans::base::trans_closure::h5c0a7253f08a6c1bEYt
  45:     0x7f4a255452b0 - trans::base::trans_fn::h84cc11dd50b05f50j9t
  46:     0x7f4a25540840 - trans::base::trans_item::h560b1558a6cec5e6Ewu
  47:     0x7f4a2562dc30 - trans::base::trans_crate::heb94c899d24982b8lsv
  48:     0x7f4a26b09fa0 - driver::phase_4_translate_to_llvm::h4be77ff61772864dPFa
  49:     0x7f4a26ae3f30 - driver::compile_input::hefa96b3bea08e00bxba
  50:     0x7f4a26bb3bc0 - monitor::unboxed_closure.22498
  51:     0x7f4a26bb3a20 - thunk::F.Invoke&lt;A, R&gt;::invoke::h2604081160332846052
  52:     0x7f4a26bb27a0 - rt::unwind::try::try_fn::h10712615664574212328
  53:     0x7f4a26630f00 - rust_try_inner
  54:     0x7f4a26630ef0 - rust_try
  55:     0x7f4a26bb2a90 - thunk::F.Invoke&lt;A, R&gt;::invoke::h6088602545528080049
  56:     0x7f4a265b0630 - sys::thread::thread_start::h803dac673dcdb1abqrw
  57:     0x7f4a20cc7250 - start_thread
  58:     0x7f4a261e0219 - clone
  59:                0x0 - &lt;unknown&gt;

Could not compile `subpaths`.
</code></pre></div>