Closed
Description
Got an ICE when trying to return a Box<_> which contains associated types
pub trait Parser {
type Input;
fn parse(&mut self, input: <Self as Parser>::Input);
}
impl Parser for () {
type Input = ();
fn parse(&mut self, input: ()) {
}
}
pub fn many() -> Box<Parser<Input=<() as Parser>::Input> + 'static> {
panic!()
}
fn main() {
many()
.parse(());
}
Error and backtrace:
`error.rs:18:10: 18:19 error: internal compiler error: &mut Parser + 'static was
a subtype of &mut Parser + 'static but now is not?
error.rs:18 .parse(());
^~~~~~~~~
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<Any>', C:\bot\slave\nightly-dist-rustc-win-64\build\src\libsyntax\diagnostic.rs:123
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: 0x6f8980cb - diagnostic::SpanHandler::span_bug::hebc2106d060dd9d6xSF
6: 0x5e1d0a - session::Session::span_bug::h08799ba60bf74646cQq
7: 0x6d50bbe4 - check::method::probe::Pick<'tcx>.Repr<'tcx>::repr::h1c3027b8aeb1b724Qjh
8: 0x6d587cd1 - check::LvaluePreference...std..cmp..Eq::assert_receiver_is_total_eq::h22fc9549f98e035eaom
9: 0x6d5a6750 - check::LvaluePreference...std..cmp..Eq::assert_receiver_is_total_eq::h22fc9549f98e035eaom
10: 0x6d566063 - check::GatherLocalsVisitor<'a, 'tcx>.Visitor<'v>::visit_item::h6a396874613b07b20dk
11: 0x6d553fdd - check::FnCtxt<'a, 'tcx>.RegionScope::anon_regions::hdbf64e315fb3c7658mm
12: 0x6d56319e - check::CheckItemTypesVisitor<'a, 'tcx>.Visitor<'v>::visit_ty::h8db07a75f4d7ec1c31j
13: 0x6d55ae70 - check::CheckItemTypesVisitor<'a, 'tcx>.Visitor<'v>::visit_item::h6010e6ec5a0a2b14G1j
14: 0x6d625870 - check_crate::hd6caa8c10c4dd23523x
15: 0x6d620844 - check_crate::hd6caa8c10c4dd23523x
16: 0x70b1e6bf - driver::phase_3_run_analysis_passes::hca97b7f3e7dde725gwa
17: 0x70b02abd - driver::compile_input::hf5b2f58693da03b5xba
18: 0x70bd1eec - run::ha65e56249318cc0dV3b
19: 0x70bd04cc - run::ha65e56249318cc0dV3b
20: 0x70bcf16a - run::ha65e56249318cc0dV3b
21: 0x69c2881c - rust_try
22: 0x69c287f9 - rust_try
23: 0x70bcf854 - run::ha65e56249318cc0dV3b
24: 0x69bf14a7 - sys::tcp::TcpListener::bind::hc4a8da4adad0f541bsw
25: 0x7fff4c8816ad - BaseThreadInitThunk
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