Skip to content

ICE: index out of bounds: the len is 0 but the index is 0 #16048

Closed
@mrmonday

Description

@mrmonday

Compiler (modified, but verified issue on http://play.rust-lang.org/):

rustc 0.12.0-pre (a4a2bf566fd41ec35226d6bacee8dba45a196a60 2014-07-15 15:37:44 +0100)
binary: rustc
commit-hash: a4a2bf566fd41ec35226d6bacee8dba45a196a60
commit-date: 2014-07-15 15:37:44 +0100
host: x86_64-unknown-linux-gnu
release: 0.12.0-pre

Source:

trait NoLifetime {
    fn get<'p, T : Test<'p>>(&self) -> T;
}

trait Test<'p> {
    fn new(buf: &'p mut [u8]) -> Self;
}

struct Foo<'a> {
    //a: int
    buf: &'a mut [u8],
}

impl<'a> Test<'a> for Foo<'a> {
    fn new(buf: &'a mut [u8]) -> Foo<'a> {
        Foo { buf: buf }
    }
}

impl<'a> NoLifetime for Foo<'a> {
    fn get<'p, T : Test<'a>>(&self) -> T {
        return *self as T;
    }
}

fn main() {

}

Output:

ice.rs:22:16: 22:26 error: non-scalar cast: `Foo<'a>` as `T`
ice.rs:22         return *self as T;
                         ^~~~~~~~~~
error: internal compiler error: unexpected failure
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 'index out of bounds: the len is 0 but the index is 0', /home/robert/rust/src/librustc/middle/subst.rs:405

stack backtrace:
   1:     0x7f59dfd89750 - rt::backtrace::imp::write::h079eed8b4183d226t7p
   2:     0x7f59dfd8cfb0 - failure::on_fail::hf0a1aa68f05b9f3eIsq
   3:     0x7f59e056aba0 - unwind::begin_unwind_inner::hc7e7531ea03bf63641d
   4:     0x7f59e056a7f0 - unwind::begin_unwind_fmt::h3f3e62847673bb96xZd
   5:     0x7f59e056a7b0 - rust_begin_unwind
   6:     0x7f59e05ad170 - failure::begin_unwind::h953da15ca40ac352Gsj
   7:     0x7f59e05b0a20 - failure::fail_bounds_check::h6d9ef56460fb3496Sqj
   8:     0x7f59e09dbd10 - middle::ty_fold::ty..Region.TypeFoldable::fold_with::h8821839781562148557
   9:     0x7f59e09dbcd0 - middle::ty_fold::VecPerParamSpace<T>.TypeFoldable::fold_with::closure.$x22closure$x22$LP$96970$RP$
  10:     0x7f59e09da7e0 - middle::subst::VecPerParamSpace<T>::map::h4074482880838128682
  11:     0x7f59e09da610 - middle::ty_fold::TypeFolder::fold_substs::h9918967593543296047
  12:     0x7f59e0b42440 - middle::subst::T.Subst::subst_spanned::h18065759743740398268
  13:     0x7f59e0c82b20 - middle::typeck::check::compare_impl_method::h45f28e9e009d76dcfkh
  14:     0x7f59e0c6dfd0 - middle::typeck::check::check_item::h61093964faedb0786Xg
  15:     0x7f59e0c74b80 - middle::typeck::check::check_item_types::hc151b158b03a27ccdqg
  16:     0x7f59e0de5430 - middle::typeck::check_crate::hfaef0151d1c472f5gMG
  17:     0x7f59e116dda0 - driver::driver::phase_3_run_analysis_passes::h56b081ce642bbf64vAr
  18:     0x7f59e1169640 - driver::driver::compile_input::h247fca9f7ba62049wmr
  19:     0x7f59e1222330 - driver::run_compiler::hfdcb4e3d769c700eBsu
  20:     0x7f59e1222240 - driver::main_args::closure.$x22closure$x22$LP$132588$RP$
  21:     0x7f59e1235e20 - task::TaskBuilder<S>::try_future::closure.$x22closure$x22$LP$133737$RP$
  22:     0x7f59e1235bb0 - task::TaskBuilder<S>::spawn_internal::closure.$x22closure$x22$LP$133714$RP$
  23:     0x7f59e1bd2960 - task::spawn_opts::closure.$x22closure$x22$LP$8449$RP$
  24:     0x7f59e05c1170 - rust_try
  25:     0x7f59e0567c30 - unwind::try::hfdf5af0beedee967tQd
  26:     0x7f59e0567990 - task::Task::run::hfe12a6f8839748ddP1c
  27:     0x7f59e1bd2750 - task::spawn_opts::closure.$x22closure$x22$LP$8395$RP$
  28:     0x7f59e0569c10 - thread::thread_start::h203fd40fba58c73dnod
  29:     0x7f59df80aea0 - start_thread
  30:     0x7f59e0229999 - __clone
  31:                0x0 - <unknown>

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.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