Closed
Description
STR
trait Stream { type Item; }
impl<'a> Stream for &'a str { type Item = char; }
fn f<'s>(_: &'s str) -> (&'s str, <&'s str as Stream>::Item) { loop {}}
fn main() {
f as for<'t> fn(&'t str) -> (&'t str, <&'t str as Stream>::Item);
}
ICE
thread 'rustc' panicked at 'assertion failed: !projection_ty.has_escaping_regions()', ../src/librustc/middle/traits/fulfill.rs:142
stack backtrace:
1: 0x7fb374005821 - sys::backtrace::write::h1f94a55df3f5c060tAs
at ../src/libstd/sys/unix/backtrace.rs:157
2: 0x7fb374036dc2 - panicking::on_panic::h7395b54848e3e9ccyEx
at ../src/libstd/panicking.rs:45
3: 0x7fb373f65456 - rt::unwind::begin_unwind_inner::hcaa18d84671dc6f1P5w
at ../src/libstd/rt/unwind/mod.rs:283
4: 0x7fb370893b6c - rt::unwind::begin_unwind::h6172101820686538617
at ../src/libstd/rt/unwind/mod.rs:236
5: 0x7fb3710fe472 - middle::traits::fulfill::FulfillmentContext<'tcx>::normalize_projection_type::hcf70e505dec3d2592IR
at /home/ariel/Rust/source.arielb1/build/<std macros>:3
6: 0x7fb37350c4d0 - check::FnCtxt<'a, 'tcx>::normalize_associated_type::h1b069930cbf0a459JOo
at ../src/librustc_typeck/check/mod.rs:1370
7: 0x7fb3734b4be9 - check::FnCtxt<'a, 'tcx>.AstConv<'tcx>::projected_ty::h36429f32ac9a3fffjuo
at ../src/librustc_typeck/check/mod.rs:1186
8: 0x7fb373624429 - astconv::qpath_to_ty::h71e2ea7f4506a5a6DCv
at ../src/librustc_typeck/astconv.rs:1337
9: 0x7fb373625635 - astconv::base_def_to_ty::h2f321ee71a45c0e11Hv
at ../src/librustc_typeck/astconv.rs:1441
10: 0x7fb3735c9a3e - astconv::finish_resolving_def_to_ty::h34ff71956713a7572Nv
at ../src/librustc_typeck/astconv.rs:1494
11: 0x7fb37351caaa - astconv::ast_ty_to_ty::h59f5403e5b7d66bdQPv
at ../src/librustc_typeck/astconv.rs:1603
12: 0x7fb3736262cc - astconv::ast_ty_to_ty::closure.39826
at ../src/librustc_typeck/astconv.rs:1572
13: 0x7fb3736261f4 - iter::Map<I, F>.Iterator::next::closure.39823
at ../src/libcore/iter.rs:1722
14: 0x7fb373626167 - option::Option<T>::map::h14013055041868616625
at ../src/libcore/option.rs:423
15: 0x7fb373626105 - iter::Map<I, F>.Iterator::next::h5773863637391150978
at ../src/libcore/iter.rs:1722
16: 0x7fb373626396 - vec::Vec<T>::extend_desugared::h11629801303543280143
at ../src/libcollections/vec.rs:1470
17: 0x7fb373625fb2 - vec::Vec<T>.FromIterator<T>::from_iter::h13404738094255389204
at ../src/libcollections/vec.rs:1394
18: 0x7fb373625d1e - iter::Iterator::collect::h6317935585935112489
at ../src/libcore/iter.rs:565
19: 0x7fb37351b565 - astconv::ast_ty_to_ty::h59f5403e5b7d66bdQPv
at ../src/librustc_typeck/astconv.rs:1571
20: 0x7fb37360c760 - astconv::convert_ty_with_lifetime_elision::h6f460f7dd8faf27aFNu
at ../src/librustc_typeck/astconv.rs:570
21: 0x7fb37362b512 - astconv::ty_of_method_or_bare_fn::hce05a437eae5328ff5v
at ../src/librustc_typeck/astconv.rs:1803
22: 0x7fb37362664d - astconv::ty_of_bare_fn::h607ee3ec664c27fdH4v
at ../src/librustc_typeck/astconv.rs:1711
23: 0x7fb37351b7f0 - astconv::ast_ty_to_ty::h59f5403e5b7d66bdQPv
at ../src/librustc_typeck/astconv.rs:1579
24: 0x7fb37333a1d3 - check::FnCtxt<'a, 'tcx>::to_ty::h73fafe684209fa0dDVo
at ../src/librustc_typeck/check/mod.rs:1509
25: 0x7fb3735a5de0 - check::check_expr_with_unifier::h6057465928997568522
at ../src/librustc_typeck/check/mod.rs:3497
26: 0x7fb37331b230 - check::check_expr::h67cfff21408ddc9dxjq
at ../src/librustc_typeck/check/mod.rs:2636
27: 0x7fb3735ce9b3 - check::check_stmt::haa8f485ee8788d35v0r
at ../src/librustc_typeck/check/mod.rs:4060
28: 0x7fb3734f202f - check::check_block_with_expected::h92e2dfdb42860c63z4r
at ../src/librustc_typeck/check/mod.rs:4102
29: 0x7fb3734b591e - check::check_fn::hfab5918ab6495513Szn
at ../src/librustc_typeck/check/mod.rs:625
30: 0x7fb3734e3b42 - check::check_bare_fn::h69149d526417eee8xpn
at ../src/librustc_typeck/check/mod.rs:443
31: 0x7fb3734dbb7d - check::check_item_body::hde42a3e9eb7fca98xPn
at ../src/librustc_typeck/check/mod.rs:718
32: 0x7fb3734db584 - check::CheckItemBodiesVisitor<'a, 'tcx>.Visitor<'tcx>::visit_item::h19b7e1a3ef4d47d8Amn
at ../src/librustc_typeck/check/mod.rs:380
33: 0x7fb3734e1914 - visit::walk_mod::h4457057824098729211
at ../src/libsyntax/visit.rs:165
34: 0x7fb3734e1861 - visit::Visitor::visit_mod::h5000110883616035837
at ../src/libsyntax/visit.rs:64
35: 0x7fb3734e2fdb - visit::walk_crate::h7371658545850931832
at ../src/libsyntax/visit.rs:157
36: 0x7fb3734e2ab2 - check::check_item_types::hf8f1cb484009402b4mn
at ../src/librustc_typeck/check/mod.rs:400
37: 0x7fb373756a00 - check_crate::closure.42607
at ../src/librustc_typeck/lib.rs:349
38: 0x7fb3737563df - util::common::time::h5154388386627276761
at ../src/librustc/util/common.rs:39
39: 0x7fb373752ec8 - check_crate::h1096b8cc64f43ddds5C
at ../src/librustc_typeck/lib.rs:348
40: 0x7fb374718044 - driver::phase_3_run_analysis_passes::closure.16867
at ../src/librustc_driver/driver.rs:663
41: 0x7fb374717de3 - middle::ty::tls::enter::closure.16858
at ../src/librustc/middle/ty.rs:1151
42: 0x7fb374717b34 - thread::scoped_tls::ScopedKey<T>::set::h5740698089117313085
at ../src/libstd/thread/scoped_tls.rs:180
43: 0x7fb374717594 - middle::ty::tls::enter::closure.16818
at ../src/librustc/middle/ty.rs:1151
44: 0x7fb374717068 - thread::local::LocalKey<T>::with::h1047998320376595356
at ../src/libstd/thread/local.rs:217
45: 0x7fb374716c83 - middle::ty::tls::enter::closure.16811
at ../src/librustc/middle/ty.rs:1145
46: 0x7fb374716818 - thread::local::LocalKey<T>::with::h8975214402943655292
at ../src/libstd/thread/local.rs:217
47: 0x7fb3747164a8 - middle::ty::tls::enter::h15244471624338917019
at ../src/librustc/middle/ty.rs:1144
48: 0x7fb374713730 - middle::ty::ctxt<'tcx>::create_and_enter::h5448069206079026180
at ../src/librustc/middle/ty.rs:3746
49: 0x7fb3746fa720 - driver::phase_3_run_analysis_passes::h17171246126576738064
at ../src/librustc_driver/driver.rs:651
50: 0x7fb3746b28eb - driver::compile_input::h7936237b5328f2c1Tba
at ../src/librustc_driver/driver.rs:122
51: 0x7fb3749b5ea3 - run_compiler::he5596ff537c688ddC7b
at ../src/librustc_driver/lib.rs:156
52: 0x7fb3749b2688 - run::closure.29243
at ../src/librustc_driver/lib.rs:99
53: 0x7fb3749b175d - monitor::closure.29214
at ../src/librustc_driver/lib.rs:809
54: 0x7fb3749b1611 - boxed::F.FnBox<A>::call_box::h13102866563604429246
at ../src/liballoc/boxed.rs:515
55: 0x7fb3749b11e0 - boxed::Box<FnBox<A, Output $u3d$$u20$R$GT$$u2b$$u20$Send$u20$$u2b$$u20$$u27$a$GT$.FnOnce$LT$A$GT$::call_once::h15928366404761575081
at ../src/liballoc/boxed.rs:531
56: 0x7fb3749b0c92 - thread::Builder::spawn_inner::closure.29187
at ../src/libstd/thread/mod.rs:322
57: 0x7fb3749b0c0e - rt::unwind::try::try_fn::h2096641183789202929
at ../src/libstd/rt/unwind/mod.rs:168
58: 0x7fb374035f57 - __rust_try_inner
59: 0x7fb374035fad - __rust_try
60: 0x7fb373fdacef - rt::unwind::try::inner_try::h8401f0adc136f5f2I1w
at ../src/libstd/rt/unwind/mod.rs:157
61: 0x7fb3749b0b58 - rt::unwind::try::h2869518614589579972
at ../src/libstd/rt/unwind/mod.rs:140
62: 0x7fb3749b09be - thread::Builder::spawn_inner::closure.29139
at ../src/libstd/thread/mod.rs:322
63: 0x7fb3749b144d - boxed::F.FnBox<A>::call_box::h5650395233266235292
at ../src/liballoc/boxed.rs:515
64: 0x7fb373ffc360 - boxed::Box<FnBox<A, Output $u3d$$u20$R$GT$$u2b$$u20$$u27$a$GT$.FnOnce$LT$A$GT$::call_once::h17370688546240473290
at ../src/liballoc/boxed.rs:523
65: 0x7fb373ffc25c - sys_common::thread::start_thread::hcfc7a4e253eecb1deCr
at ../src/libstd/sys/common/thread.rs:30
66: 0x7fb374031514 - sys::thread::Thread::new::thread_start::__rust_abi
at ../src/libstd/sys/unix/thread.rs:77
67: 0x7fb374031494 - sys::thread::Thread::new::thread_start::hfb441bc8d197c3d5gbw
68: 0x7fb36c1c10a3 - start_thread
69: 0x7fb373bcb07c - clone
70: 0x0 - <unknown>