<p dir="auto">I'm new to rust, be nice to me ;)</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace"><pre class="notranslate"><code class="notranslate">note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
</code></pre></div>
<p dir="auto">I tried this code:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="use std::sync::mpsc::channel;
use websocket::{Server,Sender};
let (tx,rx) = channel::&lt;Box&lt;Sender&lt;_&gt;&gt;&gt;();"><pre class="notranslate"><code class="notranslate">use std::sync::mpsc::channel;
use websocket::{Server,Sender};
let (tx,rx) = channel::&lt;Box&lt;Sender&lt;_&gt;&gt;&gt;();
</code></pre></div>
<p dir="auto">I expected the channel for passing boxed sendes around to be created, or at least some meaningful error from compiler telling me why what i'm trying to do here is impossible.</p>
<p dir="auto">Instead, this happened:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="src/main.rs:7:19: 7:46 error: internal compiler error: cat_expr Errd
src/main.rs:7     let (tx,rx) = channel::&lt;Box&lt;Sender&lt;_&gt;&gt;&gt;();"><pre class="notranslate"><code class="notranslate">src/main.rs:7:19: 7:46 error: internal compiler error: cat_expr Errd
src/main.rs:7     let (tx,rx) = channel::&lt;Box&lt;Sender&lt;_&gt;&gt;&gt;();
</code></pre></div>
<h2 dir="auto">Meta</h2>
<p dir="auto"><code class="notranslate">rustc --version --verbose</code>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)
binary: rustc
commit-hash: a59de37e99060162a2674e3ff45409ac73595c0e
commit-date: 2015-05-13
build-date: 2015-05-14
host: x86_64-unknown-linux-gnu
release: 1.0.0"><pre class="notranslate"><code class="notranslate">rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)
binary: rustc
commit-hash: a59de37e99060162a2674e3ff45409ac73595c0e
commit-date: 2015-05-13
build-date: 2015-05-14
host: x86_64-unknown-linux-gnu
release: 1.0.0
</code></pre></div>
<p dir="auto">Backtrace:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="stack backtrace:
   1:     0x7fc40ecc3449 - sys::backtrace::write::hbc46dc0cfb3b9537d4r
   2:     0x7fc40eccb156 - panicking::on_panic::h74d3c14d86c58ac8jrw
   3:     0x7fc40ec8e462 - rt::unwind::begin_unwind_inner::h382cea404b11eb00t6v
   4:     0x7fc40c2593fd - rt::unwind::begin_unwind::h6365792021826883910
   5:     0x7fc40c259392 - diagnostic::SpanHandler::span_bug::h15654069e1b4ed62EqB
   6:     0x7fc40caf5083 - session::Session::span_bug::h51bebfa939964985ODq
   7:     0x7fc40da9adad - check::regionck::visit_expr::hea39a9609363990fYhd
   8:     0x7fc40da9b247 - check::regionck::visit_local::ha27d5c7a055a259e3ed
   9:     0x7fc40da97d48 - check::regionck::Rcx&lt;'a, 'tcx&gt;::visit_fn_body::hf2385fd1ec2e2fd3pUc
  10:     0x7fc40db11896 - check::check_bare_fn::h1ca89f422d965ecetwn
  11:     0x7fc40db0f6f2 - check::CheckItemBodiesVisitor&lt;'a, 'tcx&gt;.Visitor&lt;'tcx&gt;::visit_item::h29ccc99d00d684a7wtn
  12:     0x7fc40dbd369a - check_crate::closure.38028
  13:     0x7fc40dbcea30 - check_crate::h22dcd95e17a2d96dXcC
  14:     0x7fc40f207cc8 - driver::phase_3_run_analysis_passes::h43926ceca86caa9fnGa
  15:     0x7fc40f1e8dc5 - driver::compile_input::hb78754f2f33c01efQba
  16:     0x7fc40f2aa4d1 - run_compiler::h258d36d5501c1cdfz4b
  17:     0x7fc40f2a8122 - boxed::F.FnBox&lt;A&gt;::call_box::h7239693171334256553
  18:     0x7fc40f2a7659 - rt::unwind::try::try_fn::h14329119008520845439
  19:     0x7fc40ed3dac8 - rust_try_inner
  20:     0x7fc40ed3dab5 - rust_try
  21:     0x7fc40f2a7908 - boxed::F.FnBox&lt;A&gt;::call_box::h17332056298259451807
  22:     0x7fc40ecca041 - sys::thread::create::thread_start::h490278b5c3c0b49faqv
  23:     0x7fc40954c181 - start_thread
  24:     0x7fc40e91447c - __clone
  25:                0x0 - &lt;unknown&gt;"><pre class="notranslate"><code class="notranslate">stack backtrace:
   1:     0x7fc40ecc3449 - sys::backtrace::write::hbc46dc0cfb3b9537d4r
   2:     0x7fc40eccb156 - panicking::on_panic::h74d3c14d86c58ac8jrw
   3:     0x7fc40ec8e462 - rt::unwind::begin_unwind_inner::h382cea404b11eb00t6v
   4:     0x7fc40c2593fd - rt::unwind::begin_unwind::h6365792021826883910
   5:     0x7fc40c259392 - diagnostic::SpanHandler::span_bug::h15654069e1b4ed62EqB
   6:     0x7fc40caf5083 - session::Session::span_bug::h51bebfa939964985ODq
   7:     0x7fc40da9adad - check::regionck::visit_expr::hea39a9609363990fYhd
   8:     0x7fc40da9b247 - check::regionck::visit_local::ha27d5c7a055a259e3ed
   9:     0x7fc40da97d48 - check::regionck::Rcx&lt;'a, 'tcx&gt;::visit_fn_body::hf2385fd1ec2e2fd3pUc
  10:     0x7fc40db11896 - check::check_bare_fn::h1ca89f422d965ecetwn
  11:     0x7fc40db0f6f2 - check::CheckItemBodiesVisitor&lt;'a, 'tcx&gt;.Visitor&lt;'tcx&gt;::visit_item::h29ccc99d00d684a7wtn
  12:     0x7fc40dbd369a - check_crate::closure.38028
  13:     0x7fc40dbcea30 - check_crate::h22dcd95e17a2d96dXcC
  14:     0x7fc40f207cc8 - driver::phase_3_run_analysis_passes::h43926ceca86caa9fnGa
  15:     0x7fc40f1e8dc5 - driver::compile_input::hb78754f2f33c01efQba
  16:     0x7fc40f2aa4d1 - run_compiler::h258d36d5501c1cdfz4b
  17:     0x7fc40f2a8122 - boxed::F.FnBox&lt;A&gt;::call_box::h7239693171334256553
  18:     0x7fc40f2a7659 - rt::unwind::try::try_fn::h14329119008520845439
  19:     0x7fc40ed3dac8 - rust_try_inner
  20:     0x7fc40ed3dab5 - rust_try
  21:     0x7fc40f2a7908 - boxed::F.FnBox&lt;A&gt;::call_box::h17332056298259451807
  22:     0x7fc40ecca041 - sys::thread::create::thread_start::h490278b5c3c0b49faqv
  23:     0x7fc40954c181 - start_thread
  24:     0x7fc40e91447c - __clone
  25:                0x0 - &lt;unknown&gt;
</code></pre></div>
<p dir="auto">Test case:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="fn main() { []; }"><pre class="notranslate"><code class="notranslate">fn main() { []; }
</code></pre></div>
<p dir="auto">Output:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ RUST_BACKTRACE=1 rustc test.rs 
test.rs:1:13: 1:15 error: internal compiler error: cat_expr Errd
test.rs:1 fn main() { []; }
                      ^~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:129

stack backtrace:
   1:         0xcc029720 - sys::backtrace::write::h66f3f2784d0f6c5ddgA
   2:         0xcc051b80 - panicking::on_panic::h6fdde9e4e9166fe6jaJ
   3:         0xcbf91c30 - rt::unwind::begin_unwind_inner::hba10c536ef2aae75MQI
   4:         0xc92a10c0 - rt::unwind::begin_unwind::h11287547919384241778
   5:         0xc92a1050 - diagnostic::SpanHandler::span_bug::h551f703868554ecfUBD
   6:         0xc9e32fe0 - session::Session::span_bug::h10f6b5fdbea6485fbjp
   7:         0xcb6c5920 - check::regionck::visit_expr::hc78138689559ecf8Yrd
   8:         0xcb6c35c0 - check::regionck::Rcx&lt;'a, 'tcx&gt;::visit_fn_body::h75e2fac33dc50b43a4c
   9:         0xcb75ee50 - check::check_bare_fn::hf42e5aabaa5cb880Oan
  10:         0xcb756f40 - check::check_item::hdbe569c101f96905stn
  11:         0xcb822f10 - check_crate::closure.36015
  12:         0xcb81d9c0 - check_crate::h9d44bf3fde687089EXB
  13:         0xcc6a38c0 - driver::phase_3_run_analysis_passes::h36c633d41f11ca74wFa
  14:         0xcc689ec0 - driver::compile_input::h0de317319ab5c701Hba
  15:         0xcc754e20 - run_compiler::hffa0c0711e361de8E5b
  16:         0xcc753720 - thunk::F.Invoke&lt;A, R&gt;::invoke::h12673221910893163557
  17:         0xcc752610 - rt::unwind::try::try_fn::h15130568597725528481
  18:         0xcc0bd740 - rust_try_inner
  19:         0xcc0bd730 - rust_try
  20:         0xcc752910 - thunk::F.Invoke&lt;A, R&gt;::invoke::h3924406537784056782
  21:         0xcc03d990 - sys::thread::thread_start::h3734be2229bd3edegEE
  22:         0xc5f650c0 - start_thread
  23:         0xcbc0a449 - __clone
  24:                0x0 - &lt;unknown&gt;"><pre class="notranslate"><code class="notranslate">$ RUST_BACKTRACE=1 rustc test.rs 
test.rs:1:13: 1:15 error: internal compiler error: cat_expr Errd
test.rs:1 fn main() { []; }
                      ^~
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box&lt;Any&gt;', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:129

stack backtrace:
   1:         0xcc029720 - sys::backtrace::write::h66f3f2784d0f6c5ddgA
   2:         0xcc051b80 - panicking::on_panic::h6fdde9e4e9166fe6jaJ
   3:         0xcbf91c30 - rt::unwind::begin_unwind_inner::hba10c536ef2aae75MQI
   4:         0xc92a10c0 - rt::unwind::begin_unwind::h11287547919384241778
   5:         0xc92a1050 - diagnostic::SpanHandler::span_bug::h551f703868554ecfUBD
   6:         0xc9e32fe0 - session::Session::span_bug::h10f6b5fdbea6485fbjp
   7:         0xcb6c5920 - check::regionck::visit_expr::hc78138689559ecf8Yrd
   8:         0xcb6c35c0 - check::regionck::Rcx&lt;'a, 'tcx&gt;::visit_fn_body::h75e2fac33dc50b43a4c
   9:         0xcb75ee50 - check::check_bare_fn::hf42e5aabaa5cb880Oan
  10:         0xcb756f40 - check::check_item::hdbe569c101f96905stn
  11:         0xcb822f10 - check_crate::closure.36015
  12:         0xcb81d9c0 - check_crate::h9d44bf3fde687089EXB
  13:         0xcc6a38c0 - driver::phase_3_run_analysis_passes::h36c633d41f11ca74wFa
  14:         0xcc689ec0 - driver::compile_input::h0de317319ab5c701Hba
  15:         0xcc754e20 - run_compiler::hffa0c0711e361de8E5b
  16:         0xcc753720 - thunk::F.Invoke&lt;A, R&gt;::invoke::h12673221910893163557
  17:         0xcc752610 - rt::unwind::try::try_fn::h15130568597725528481
  18:         0xcc0bd740 - rust_try_inner
  19:         0xcc0bd730 - rust_try
  20:         0xcc752910 - thunk::F.Invoke&lt;A, R&gt;::invoke::h3924406537784056782
  21:         0xcc03d990 - sys::thread::thread_start::h3734be2229bd3edegEE
  22:         0xc5f650c0 - start_thread
  23:         0xcbc0a449 - __clone
  24:                0x0 - &lt;unknown&gt;
</code></pre></div>
<p dir="auto">Compiler version:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="rustc 1.0.0-nightly (b47aebe3f 2015-02-26) (built 2015-02-27)
binary: rustc
commit-hash: b47aebe3fc2da06c760fd8ea19f84cbc41d34831
commit-date: 2015-02-26
build-date: 2015-02-27
host: x86_64-unknown-linux-gnu
release: 1.0.0-nightly"><pre class="notranslate"><code class="notranslate">rustc 1.0.0-nightly (b47aebe3f 2015-02-26) (built 2015-02-27)
binary: rustc
commit-hash: b47aebe3fc2da06c760fd8ea19f84cbc41d34831
commit-date: 2015-02-26
build-date: 2015-02-27
host: x86_64-unknown-linux-gnu
release: 1.0.0-nightly
</code></pre></div>
<p dir="auto">I modified the test case in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="59341575" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/22894" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/22894/hovercard" href="https://github.com/rust-lang/rust/issues/22894">#22894</a> by moving the <code class="notranslate">&amp;*""</code> into <code class="notranslate">fn main()</code>, and I saw the same ICE.  I then changed the <code class="notranslate">""</code> to the similar <code class="notranslate">&amp;[]</code>, and I saw an ICE with a different error message and a different stack trace (e.g. phase 3 instead of phase 4).  The <code class="notranslate">&amp;</code> and <code class="notranslate">*</code> are unnecessary.</p>
<p dir="auto">I also see the <code class="notranslate">cat_expr Errd</code> message in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="56894364" data-permission-text="Title is private" data-url="https://github.com/rust-lang/rust/issues/22037" data-hovercard-type="issue" data-hovercard-url="/rust-lang/rust/issues/22037/hovercard" href="https://github.com/rust-lang/rust/issues/22037">#22037</a>, but there are differences -- this issue happens in phase 3 rather than 4, and there is no "fictitious type" message.</p>