Closed
Description
enum AnEnum {
Something(Box<[u8]>)
}
fn main() {
let buf = [0u8, ..1024];
let (tx, rx) = channel();
spawn(proc() {
tx.send(Something(box *buf.slice(0, 10)));
});
let _smth = rx.recv();
}
Compilation backtrace
> RUST_BACKTRACE=1 rustc bug-report.rs ~/rust@sneglzilla
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 'assertion failed: ty::type_is_sized(bcx.tcx(), contents_ty)', /home/laumann/rustlang/src/librustc/middle/trans/expr.rs:1556
stack backtrace:
1: 0x7fce2e68b7f0 - rt::backtrace::imp::write::h18da00e3fa21aa27UVq
2: 0x7fce2e68e980 - failure::on_fail::hf0bf9ceb951d492amhr
3: 0x7fce32c0e070 - unwind::begin_unwind_inner::h6b7f27e30df90d49SUd
4: 0x7fce3325f3d0 - unwind::begin_unwind::h11203309285505231177
5: 0x7fce3364dff0 - middle::trans::expr::trans_uniq_expr::hf654a567423fe43f8T4
6: 0x7fce3364eb00 - middle::trans::expr::trans_unary::hf911da575068b68f2P4
7: 0x7fce33643e80 - middle::trans::expr::trans_unadjusted::hccc8ccb9a94a90ec2v3
8: 0x7fce33607cd0 - middle::trans::expr::trans_into::h6cee4eb39aeb67db4K2
9: 0x7fce33659160 - middle::trans::expr::trans_adt::hf361baf5d06d970aaH4
10: 0x7fce3363c5b0 - middle::trans::base::trans_named_tuple_constructor::hef48ebcafb37b2f3Cdf
11: 0x7fce3360fae0 - middle::trans::callee::trans_call_inner::h6360d135c41f8588V01
12: 0x7fce336368c0 - middle::trans::callee::trans_call::hbcb2abdb833634a2gV1
13: 0x7fce336452e0 - middle::trans::expr::trans_rvalue_dps_unadjusted::ha391dd13a949111bd93
14: 0x7fce33643e80 - middle::trans::expr::trans_unadjusted::hccc8ccb9a94a90ec2v3
15: 0x7fce336092a0 - middle::trans::expr::trans::heb5629bc9dc8455bYO2
16: 0x7fce3363cd20 - middle::trans::callee::trans_args::hfb38277828a15ad7Sl2
17: 0x7fce3360fae0 - middle::trans::callee::trans_call_inner::h6360d135c41f8588V01
18: 0x7fce33637580 - middle::trans::callee::trans_method_call::h045a13573e018f1coW1
19: 0x7fce336452e0 - middle::trans::expr::trans_rvalue_dps_unadjusted::ha391dd13a949111bd93
20: 0x7fce33607cd0 - middle::trans::expr::trans_into::h6cee4eb39aeb67db4K2
21: 0x7fce336070a0 - middle::trans::controlflow::trans_stmt_semi::hb02369797d17f5e1fRY
22: 0x7fce33606650 - middle::trans::controlflow::trans_stmt::h5279c34802b7a3172MY
23: 0x7fce33608160 - middle::trans::controlflow::trans_block::h5bbf02ac441333a58RY
24: 0x7fce336452e0 - middle::trans::expr::trans_rvalue_dps_unadjusted::ha391dd13a949111bd93
25: 0x7fce33607cd0 - middle::trans::expr::trans_into::h6cee4eb39aeb67db4K2
26: 0x7fce33608160 - middle::trans::controlflow::trans_block::h5bbf02ac441333a58RY
27: 0x7fce336b3b00 - middle::trans::base::trans_closure::h2de5277f401e7e0eSXe
28: 0x7fce3365a640 - middle::trans::closure::trans_expr_fn::h38a72da08133e093k4i
29: 0x7fce336452e0 - middle::trans::expr::trans_rvalue_dps_unadjusted::ha391dd13a949111bd93
30: 0x7fce33643e80 - middle::trans::expr::trans_unadjusted::hccc8ccb9a94a90ec2v3
31: 0x7fce336092a0 - middle::trans::expr::trans::heb5629bc9dc8455bYO2
32: 0x7fce3363cd20 - middle::trans::callee::trans_args::hfb38277828a15ad7Sl2
33: 0x7fce3360fae0 - middle::trans::callee::trans_call_inner::h6360d135c41f8588V01
34: 0x7fce336368c0 - middle::trans::callee::trans_call::hbcb2abdb833634a2gV1
35: 0x7fce336452e0 - middle::trans::expr::trans_rvalue_dps_unadjusted::ha391dd13a949111bd93
36: 0x7fce33607cd0 - middle::trans::expr::trans_into::h6cee4eb39aeb67db4K2
37: 0x7fce336070a0 - middle::trans::controlflow::trans_stmt_semi::hb02369797d17f5e1fRY
38: 0x7fce33606650 - middle::trans::controlflow::trans_stmt::h5279c34802b7a3172MY
39: 0x7fce33608160 - middle::trans::controlflow::trans_block::h5bbf02ac441333a58RY
40: 0x7fce336b3b00 - middle::trans::base::trans_closure::h2de5277f401e7e0eSXe
41: 0x7fce335fa1b0 - middle::trans::base::trans_fn::h8818c59c3b560decg9e
42: 0x7fce335f76c0 - middle::trans::base::trans_item::hbdab4d8b520880d6zsf
43: 0x7fce336bee00 - middle::trans::base::trans_crate::h8dc93a451eb88c6ePsg
44: 0x7fce33ab8bf0 - driver::driver::phase_4_translate_to_llvm::hae0d2e943d04f1f7bZw
45: 0x7fce33ab04c0 - driver::driver::compile_input::hd932c63f3dc5f11b9vw
46: 0x7fce33b31c80 - driver::run_compiler::ha2ce4a245eb2a747dmA
47: 0x7fce33b31b60 - driver::main_args::closure.146353
48: 0x7fce33295bf0 - task::TaskBuilder<S>::try_future::closure.101568
49: 0x7fce332959e0 - task::TaskBuilder<S>::spawn_internal::closure.101539
50: 0x7fce32f676d0 - task::spawn_opts::closure.8494
51: 0x7fce32c6e220 - rust_try_inner
52: 0x7fce32c6e210 - rust_try
53: 0x7fce32c0b200 - unwind::try::he73fe587a864f313AJd
54: 0x7fce32c0b090 - task::Task::run::h3386e28ab4ecfaf2UYc
55: 0x7fce32f67440 - task::spawn_opts::closure.8434
56: 0x7fce32c0d110 - thread::thread_start::h86c5236ebccc312cpjd
57: 0x7fce2da36250 - start_thread
58: 0x7fce328e43b9 - clone
59: 0x0 - <unknown>
Version
> rustc --version
rustc 0.12.0-dev (740905042 2014-09-29 23:52:21 +0000)
Seems to be very similar to #16813 and #17118, but the difference is trying to send the value over a channel (removing this gives a "cannot move a value of type [u8]: the size of [u8] cannot be statically determined)