Closed
Description
#![feature(overloaded_calls, unboxed_closure_sugar, unboxed_closures)]
fn main() {
struct Symbol<'a, F: Fn(Vec<&'a str>) -> &'a str> { function: F }
let f = |&: x: Vec<&str>| -> &str "foobar";
let sym = Symbol { function: f };
(sym.function)(vec![]);
}
$ RUST_BACKTRACE=1 rustc foo.rs
foo.rs:7:5: 7:27 error: internal compiler error: cannot relate bound region: ReInfer(16) <= ReLateBound(33, BrAnon(0))
foo.rs:7 (sym.function)(vec![]);
^~~~~~~~~~~~~~~~~~~~~~
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<Any>', /home/tom/src/rust/rust/src/libsyntax/diagnostic.rs:113
stack backtrace:
1: 0x7f85d03d5800 - rt::backtrace::imp::write::hbbd9bf4ceb840fc0KAq
2: 0x7f85d03be190 - failure::on_fail::hc28b027ccb4467c1cWq
3: 0x7f85d0bc3c90 - unwind::begin_unwind_inner::h110735be165faa3fIxd
4: 0x7f85cedcddc0 - unwind::begin_unwind::h293010665865661344
5: 0x7f85cedcdd50 - diagnostic::SpanHandler::span_bug::h2ea40ca72e774bb3GMF
6: 0x7f85d16249b0 - driver::session::Session::span_bug::hdab774e2397de37fPtx
7: 0x7f85d1202bd0 - middle::typeck::infer::region_inference::RegionVarBindings<'a, 'tcx>::make_subregion::hdc4568b6616a2a24L47
8: 0x7f85d11df440 - middle::typeck::infer::region_inference::RegionVarBindings<'a, 'tcx>::make_eqregion::h4aa77277dfe179e5a47
9: 0x7f85d11df040 - middle::typeck::infer::equate::Equate<'f, 'tcx>.Combine<'tcx>::regions::h21a863ae7fa5ec80KX3
10: 0x7f85d11d9f30 - middle::typeck::infer::equate::Equate<'f, 'tcx>.Combine<'tcx>::tys::h35f4a7237a23cc5bX43
11: 0x7f85d11e22d0 - middle::typeck::infer::combine::Combine::substs::h324391049216757114
12: 0x7f85d11d9f30 - middle::typeck::infer::equate::Equate<'f, 'tcx>.Combine<'tcx>::tys::h35f4a7237a23cc5bX43
13: 0x7f85d11e4a00 - middle::typeck::infer::combine::super_tys::closure.158023
14: 0x7f85d11e4730 - iter::Iterator::collect::h9565269870161006725
15: 0x7f85d11d9f30 - middle::typeck::infer::equate::Equate<'f, 'tcx>.Combine<'tcx>::tys::h35f4a7237a23cc5bX43
16: 0x7f85d1760d40 - middle::typeck::infer::combine::Combine::substs::h15550467844381804152
17: 0x7f85d176b550 - middle::typeck::infer::InferCtxt<'a, 'tcx>::sub_trait_refs::hce3459e301875ec2Drd
18: 0x7f85d13a63c0 - middle::traits::select::SelectionContext<'cx, 'tcx>::confirm::h67d954f9925112deqZW
19: 0x7f85d1398700 - middle::traits::select::SelectionContext<'cx, 'tcx>::select::h1e9ce11f39286d16CtV
20: 0x7f85d1397120 - middle::traits::fulfill::FulfillmentContext::select_where_possible::h301e00b483f5538598U
21: 0x7f85d11b6ff0 - middle::typeck::check::vtable2::select_fcx_obligations_where_possible::h32e182d4cde2e439l9K
22: 0x7f85d1a1aaf0 - middle::typeck::check::check_argument_types::h5d391020df5cb75fEeV
23: 0x7f85d1a1cf30 - middle::typeck::check::check_expr_with_unifier::he6beb0ddba7fb81elNV
24: 0x7f85d1a6a430 - middle::typeck::check::check_decl_local::h3dbf38cc6fab7488QRX
25: 0x7f85d1a6a620 - middle::typeck::check::check_stmt::h56381332213a7caeYTX
26: 0x7f85d19e6c30 - middle::typeck::check::check_block_with_expected::h4c36c485fa96748dbYX
27: 0x7f85d1a1cf30 - middle::typeck::check::check_expr_with_unifier::he6beb0ddba7fb81elNV
28: 0x7f85d1a1aaf0 - middle::typeck::check::check_argument_types::h5d391020df5cb75fEeV
29: 0x7f85d1a1a060 - middle::typeck::check::check_method_argument_types::h58ec3324eba34260ScV
30: 0x7f85d1a1cf30 - middle::typeck::check::check_expr_with_unifier::he6beb0ddba7fb81elNV
31: 0x7f85d1a6a620 - middle::typeck::check::check_stmt::h56381332213a7caeYTX
32: 0x7f85d19e6c30 - middle::typeck::check::check_block_with_expected::h4c36c485fa96748dbYX
33: 0x7f85d19e2480 - middle::typeck::check::check_fn::hee24634b21a2885a2sS
34: 0x7f85d19e2280 - middle::typeck::check::check_bare_fn::h6e806ee1bf2c7308aiS
35: 0x7f85d19dd8b0 - middle::typeck::check::check_item::h51dfba04fcdcac33dKS
36: 0x7f85d19e0cd0 - middle::typeck::check::check_item_types::hd3964d97cc4fc778khS
37: 0x7f85d10a9190 - util::common::time::h11171893184677193938
38: 0x7f85d1a70480 - middle::typeck::check_crate::ha819c660b3fa1ce7Xdk
39: 0x7f85d1261d40 - driver::driver::phase_3_run_analysis_passes::ha3f2a6dccee8b431XKw
40: 0x7f85d125ab60 - driver::driver::compile_input::hffa1c362c29e45e9Jrw
41: 0x7f85d12bceb0 - driver::run_compiler::h72fc31697a8853f50hA
42: 0x7f85d12bcd80 - driver::run::closure.180762
43: 0x7f85d12ca670 - task::TaskBuilder<S>::try_future::closure.181584
44: 0x7f85d12ca4e0 - task::TaskBuilder<S>::spawn_internal::closure.181576
45: 0x7f85d23b0f20 - task::spawn_opts::closure.8955
46: 0x7f85d0c32820 - rust_try_inner
47: 0x7f85d0c32810 - rust_try
48: 0x7f85d0bc3440 - unwind::try::he0499702d1c7d9dfqmd
49: 0x7f85d0bbe150 - task::Task::run::h620c5fb327a4e3c14Bc
50: 0x7f85d23b0ce0 - task::spawn_opts::closure.8893
51: 0x7f85d0bc31e0 - thread::thread_start::haaa628b6babd0f08fWc
52: 0x7f85cfe9e250 - start_thread
53: 0x7f85d08813b9 - clone
54: 0x0 - <unknown>
Seems related to #17545 but not sure if a dupe since the ReInfer
and ReLateBound
are on opposite sides of the <=
.