Closed
Description
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
...