Skip to content

ICE when trying to implement Deref<[uint]> #16930

Closed
@krdln

Description

@krdln

Rustc fails with

task 'rustc' failed at 'assertion failed: !type_of::return_uses_outptr(ccx, ret_ty)',
/build/buildd/rust-nightly-201409010406~5dfb7a6~trusty/src/librustc/middle/trans/callee.rs:796

when compiling following code:

#![crate_type="lib"]

pub struct Arr {
    ptr: Box<[uint]>
}

impl Deref<[uint]> for Arr {
    fn deref(&self) -> &[uint] {
        &*self.ptr
    }
}

pub fn foo(arr: &Arr) {
    arr.len(); // causes error
}

Backtrace:

   1:     0x7f1d71781220 - rt::backtrace::imp::write::h208719a7cf14d03cOLq
   2:     0x7f1d71784410 - <unknown>
   3:     0x7f1d75d96c10 - unwind::begin_unwind_inner::hfa849b475f08b4b1rje
   4:     0x7f1d763ed330 - <unknown>
   5:     0x7f1d767c0330 - middle::trans::callee::trans_call_inner::h13f32445f04a65f9AJ1
   6:     0x7f1d7680c950 - <unknown>
   7:     0x7f1d76818290 - <unknown>
   8:     0x7f1d767b8390 - middle::trans::expr::trans::h51fadb66c8ac69b64B2
   9:     0x7f1d767f4150 - middle::trans::callee::trans_args::ha42c17e18c77c61aA41
  10:     0x7f1d767c0330 - middle::trans::callee::trans_call_inner::h13f32445f04a65f9AJ1
  11:     0x7f1d767eeae0 - middle::trans::callee::trans_method_call::hd4043cfefe7a428dOE1
  12:     0x7f1d767fcd00 - <unknown>
  13:     0x7f1d767b6bc0 - middle::trans::expr::trans_into::h2b91cfaa1fdfa1ff8x2
  14:     0x7f1d767b6070 - middle::trans::controlflow::trans_stmt_semi::h4d4cf243a1e0a87e4oY
  15:     0x7f1d767b5740 - middle::trans::controlflow::trans_stmt::h4f97f70adcffed13NkY
  16:     0x7f1d767b7160 - middle::trans::controlflow::trans_block::hcf02be9d7b4383f3YpY
  17:     0x7f1d7686d250 - middle::trans::base::trans_closure::heee3e3a9fcb52387XDe
  18:     0x7f1d767a7ba0 - middle::trans::base::trans_fn::hd77d86be82877457KPe
  19:     0x7f1d767a2e40 - middle::trans::base::trans_item::h747714130a4c5cb5K7e
  20:     0x7f1d76877ef0 - middle::trans::base::trans_crate::h43f5e71bb4a9ba1ab2f
  21:     0x7f1d76cabf80 - driver::driver::phase_4_translate_to_llvm::h9ff4fbbe4b63a23aALB
  22:     0x7f1d76ca37a0 - driver::driver::compile_input::h74830b820ed8b174InB
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-DSTsArea: Dynamically-sized types (DSTs)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