Skip to content

ICE when using associated constant as fixed-length array size #26402

Description

@ProtectedMode

While trying to create a generic vector type, I stumbled upon the following ICE:

error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
thread 'rustc' panicked at 'path not fully resolved: PathResolution { base_def: DefTyParam(TypeSpace, 0, DefId { krate: 0, node: 13 }, "G"(66)), last_private: LastMod(AllPublic), depth: 1 }', ../src/librustc/middle/def.rs:81

This error occurs with the following code, which is a pretty minimal test case:

#![feature(associated_consts)]

trait GenericVector {
    const size: usize;
}

struct Vector<G: GenericVector> {
    data: [f32; G::size],
}

struct D3;

impl GenericVector for D3 {
    const size: usize = 3;
}

fn main() {
    let vector = Vector::<D3> {
        data: [0.0, 3],
    };
}

Backtrace:

   1:     0x7f9bcc7063d3 - sys::backtrace::write::h42760ef5ab82bcd2irs
   2:     0x7f9bcc70e521 - panicking::on_panic::h12f68dc29fcc5657Tax
   3:     0x7f9bcc6cd28a - rt::unwind::begin_unwind_inner::h68e746642e433893DQw
   4:     0x7f9bcc6cdec7 - rt::unwind::begin_unwind_fmt::h22d77de4e1204a17JPw
   5:     0x7f9bca663e0b - middle::const_eval::eval_const_expr_with_substs::h6757944525066075748
   6:     0x7f9bca611e0b - middle::const_eval::eval_const_expr_partial::hc18213693094f10f8Lk
   7:     0x7f9bcbeca428 - astconv::ast_ty_to_ty::hc4d699607bfa4965Qfw
   8:     0x7f9bcbf4848e - iter::Map<I, F>.Iterator::next::h9665268986370662205
   9:     0x7f9bcbf3a928 - collect::convert_struct::h6bc1f37bd9a66db7pky
  10:     0x7f9bcbf2b595 - collect::convert_item::h18e8c114ea4837bbrZx
  11:     0x7f9bcbf26c46 - collect::collect_item_types::h4321500fa840372f35w
  12:     0x7f9bcbf7a3b6 - check_crate::h15b94c5d979eb877VgD
  13:     0x7f9bccc6dcb9 - driver::phase_3_run_analysis_passes::h535099e77e0d0b0aHGa
  14:     0x7f9bccc4f55a - driver::compile_input::hf94b88e60b92b1d3Sba
  15:     0x7f9bccd0b2e7 - run_compiler::hd38788069be51651F7b
  16:     0x7f9bccd088d6 - boxed::F.FnBox<A>::call_box::h10971823990562187917
  17:     0x7f9bccd080d9 - rt::unwind::try::try_fn::h13260011850501376318
  18:     0x7f9bcc78aea8 - rust_try_inner
  19:     0x7f9bcc78ae95 - rust_try
  20:     0x7f9bcc6f9147 - rt::unwind::try::inner_try::hb6dce8ad1d668192wMw
  21:     0x7f9bccd082f9 - boxed::F.FnBox<A>::call_box::h7963608429107561708
  22:     0x7f9bcc70d151 - sys::thread::Thread::new::thread_start::h82e421ca205cff91sWv
  23:     0x7f9bc62706a9 - start_thread
  24:     0x7f9bcc358eec - clone
  25:                0x0 - <unknown>

Version:

rustc 1.2.0-nightly (20d23d8e5 2015-06-18)
binary: rustc
commit-hash: 20d23d8e57c0313c811135535d6872463cc6525d
commit-date: 2015-06-18
host: x86_64-unknown-linux-gnu
release: 1.2.0-nightly

I've searched for similar issues but all issues I found were either different or closed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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