Skip to content

internal compiler error: Explicit deref of non-derefable type #18767

Closed
@mpdn

Description

@mpdn

This code:

struct Obj {
    val: uint
}

fn main() {
    let mut v = Vec::from_fn(10, |val| { box Obj { val: val } });
    for &box Obj{ val } in v.iter_mut() {
        print!("{} ", val);
    }
}

Produces this error:

test.rs:7:10: 7:24 error: internal compiler error: Explicit deref of non-derefable type: core::slice::MutItems<'_, Box<Obj>>
test.rs:7     for &box Obj{ val } in v.iter_mut() {
                   ^~~~~~~~~~~~~~
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
task 'rustc' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/nightly-linux/build/src/libsyntax/diagnostic.rs:116

stack backtrace:
   1:     0x7fe9623b5820 - rt::backtrace::imp::write::h8a05a2225574bd5ascq
   2:     0x7fe9623b88a0 - failure::on_fail::h3903c5b5788bc95c3xq
   3:     0x7fe966901a00 - unwind::begin_unwind_inner::h0919efe752d6fd357Rd
   4:     0x7fe962f00e40 - unwind::begin_unwind::h12448235468951990776
   5:     0x7fe962f00dc0 - diagnostic::SpanHandler::span_bug::h05cbb84cec88209aH6F
   6:     0x7fe967441dc0 - middle::mem_categorization::MemCategorizationContext<'t, TYPER>::cat_pattern::h9835242038117336796
   7:     0x7fe967441dc0 - middle::mem_categorization::MemCategorizationContext<'t, TYPER>::cat_pattern::h9835242038117336796
   8:     0x7fe967427c50 - middle::typeck::check::regionck::visit_expr::hc11c82b86d414b0eRjQ
   9:     0x7fe967424ef0 - middle::typeck::check::regionck::Rcx<'a, 'tcx>::visit_fn_body::h403501b853f10cf3oUP
  10:     0x7fe967424e10 - middle::typeck::check::regionck::regionck_fn::he4ec90d3d42a3075QMP
  11:     0x7fe967473280 - middle::typeck::check::check_bare_fn::h95ab28fb77469556UhW
  12:     0x7fe96746f380 - middle::typeck::check::check_item::h2b8f33a3313a08a03BW
  13:     0x7fe967473030 - middle::typeck::check::check_item_types::h84bf484ad40a8c564gW
  14:     0x7fe966f62bc0 - util::common::time::h6545073167695776246
  15:     0x7fe96775a8d0 - middle::typeck::check_crate::h0f9c9a0fae05a0bfJEp
  16:     0x7fe9677c3940 - driver::driver::phase_3_run_analysis_passes::h46245b66b26614aeJoC
  17:     0x7fe9677be7a0 - driver::driver::compile_input::he3b1257e173b8860u5B
  18:     0x7fe967841900 - driver::run_compiler::hd836d04808dd8d5eLVF
  19:     0x7fe9678417f0 - driver::run::closure.146540
  20:     0x7fe966f7bb00 - task::TaskBuilder<S>::try_future::closure.104852
  21:     0x7fe966f7b8f0 - task::TaskBuilder<S>::spawn_internal::closure.104823
  22:     0x7fe966c48630 - task::NativeSpawner.Spawner::spawn::closure.8456
  23:     0x7fe9669568c0 - rust_try_inner
  24:     0x7fe9669568b0 - rust_try
  25:     0x7fe9668ff380 - unwind::try::h32143614f9ac9c88PGd
  26:     0x7fe9668ff210 - task::Task::run::h8c90cb04437a131dFMc
  27:     0x7fe966c48370 - task::NativeSpawner.Spawner::spawn::closure.8394
  28:     0x7fe966900a20 - thread::thread_start::h7bbfc46247c32113U7c
  29:     0x7fe961767250 - start_thread
  30:     0x7fe9665db3b9 - clone
  31:                0x0 - <unknown>

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions