Repository navigation
ICE on recursive type #4363
Copy link
Copy link
Closed
Labels
A-codegenArea: Code generationArea: Code generationE-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityMedium priority
Description
enum FingerTree<A> {
Empty,
Single(A),
Deep(Node<A>)
}
struct Node<A> {
count: int,
front: Digit<A>,
inner: ~FingerTree<(A,A)>,
back: Digit<A>
}
struct Digit<A> {
count: int,
content: [Option<A>, ..4]
}
fn FingerTree<A>() -> FingerTree<A> { Empty }Note: inner: ~FingerTree<(A,A)>, seems to be the problematic bit. If I make it inner: ~FingerTree<A>, it will compile.
rust: task 7f01a0105d80 ran out of stack
/usr/local/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f01a68cf4fb]
/usr/local/bin/../lib/librustrt.so(_ZN9rust_task9new_stackEm+0x158)[0x7f01a68cf9c8]
/usr/local/bin/../lib/librustrt.so(+0x2d0f9)[0x7f01a68e30f9]
/usr/local/bin/../lib/librustrt.so(upcall_new_stack+0x280)[0x7f01a68d3060]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x782792)[0x7f01a7294792]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty14__extensions__10meth_3566210iter_bytes15_abfbbb3dea17df3_05E+0x85)[0x7f01a6ddda35]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2ddcb7)[0x7f01a6defcb7]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2db57d)[0x7f01a6ded57d]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty14fold_sty_to_ty13_f379ae3486733_05E+0xa5)[0x7f01a6df4985]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty19fold_regions_and_ty17_3db05a7d86315db93_05E+0x4cb)[0x7f01a6df668b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2e6c54)[0x7f01a6df8c54]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x112a01)[0x7f01a6c24a01]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2e50ea)[0x7f01a6df70ea]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty19fold_regions_and_ty17_3db05a7d86315db93_05E+0x26a)[0x7f01a6df642a]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2e6c54)[0x7f01a6df8c54]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2e2b64)[0x7f01a6df4b64]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty14fold_sty_to_ty13_f379ae3486733_05E+0x5a)[0x7f01a6df493a]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty19fold_regions_and_ty17_3db05a7d86315db93_05E+0x4cb)[0x7f01a6df668b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x2e6c54)[0x7f01a6df8c54]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty5subst17_6886f1198945c8923_05E+0x2fb)[0x7f01a6cc770b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty17lookup_field_type17_20ec4ec279466ae73_05E+0x1bb)[0x7f01a6d24e6b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x30b842)[0x7f01a6e1d842]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x5e1)[0x7f01a6e00311]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x3bd)[0x7f01a6e000ed]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x679)[0x7f01a6e003a9]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN6middle2ty13type_kind_ext17_a99988bff92221c13_05E+0x2fb)[0x7f01a6e0002b]
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug
note: try running with RUST_LOG=rustc=1,::rt::backtrace to get further details and report the results to github.com/mozilla/rust/issues
rust: task failed at 'explicit failure', /home/david/rust/src/librustc/rustc.rc:425
/usr/local/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f01a68cf4fb]
/usr/local/bin/../lib/librustrt.so(+0x2d0f9)[0x7f01a68e30f9]
/usr/local/bin/../lib/librustrt.so(upcall_fail+0x1b0)[0x7f01a68d1cb0]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0xa2dbb)[0x7f01a807ddbb]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x37b6e)[0x7f01a8012b6e]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0xb34d0)[0x7f01a808e4d0]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN7monitor17_3dc9d53d274031c13_05E+0x29de)[0x7f01a729153e]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(+0x7827fc)[0x7f01a72947fc]
/usr/local/bin/../lib/librustc-c84825241471686d-0.5.so(_ZN4main16_2fb85b4a659c4103_05E+0x86)[0x7f01a7294406]
/usr/local/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f01a68cfd64]
rust: domain main @0xe0f1f0 root task failed
rust: task failed at 'killed', /home/david/rust/src/libcore/task/mod.rs:570
/usr/local/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f01a68cf4fb]
/usr/local/bin/../lib/librustrt.so(+0x2d0f9)[0x7f01a68e30f9]
/usr/local/bin/../lib/librustrt.so(upcall_fail+0x1b0)[0x7f01a68d1cb0]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0xa2dbb)[0x7f01a807ddbb]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x37b6e)[0x7f01a8012b6e]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(_ZN4task5yield17_56812fae66173efd3_05E+0xbd)[0x7f01a803fe9d]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x91c56)[0x7f01a806cc56]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0xb34d0)[0x7f01a808e4d0]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(_ZN7private11weaken_task17_ababfc7d1239606c3_05E+0xd9)[0x7f01a806ca99]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x9198b)[0x7f01a806c98b]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x8c563)[0x7f01a8067563]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0x7c29f)[0x7f01a805729f]
/usr/local/bin/../lib/libcore-c3ca5d77d81b46c1-0.5.so(+0xb34d0)[0x7f01a808e4d0]
/usr/local/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x24)[0x7f01a68cfd64]
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-codegenArea: Code generationArea: Code generationE-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityMedium priority
Activity
catamorphism commentedon Jan 6, 2013
Thanks for the report. This is a known issue: #4218 -- but keep the bug reports coming, it's way better to deal with some duplicates than to not know about a bug :-)
catamorphism commentedon Jan 7, 2013
Sorry, I was reading too fast. I think this is a different bug. I'll look at it more carefully.
catamorphism commentedon Jan 12, 2013
I thought at first that the code here should be accepted, but no reflection, I think it shouldn't be. Instantiating
FingerTreewith(A, A)means that monomorphizing any function using aFingerTreewill require an infinitely large type. The difference withAinstead of(A, A)is that you can re-use the instanceFingerTree<A>. Let me know if that's clear.With that said, of course, this should be a proper type error and not an ICE.
catamorphism commentedon Jan 12, 2013
@nikomatsakis - I'd appreciate a second opinion here. I still think the type shouldn't be allowed, but I'm not sure I can explain why. It's definitely instantiable, and if I change
(A, A)to~(A, A), I think it should be representable too. But the version with the ~ also causes infinite recursion. So I'm not sure what check is needed to disallow this.catamorphism commentedon Jan 12, 2013
I'm thinking that an additional check, enforcing the rule "If types A and B are part of a mutually recursive cycle of types, then B must be used monomorphically when it occurs within A, and vice versa", would disallow this (thus, the program here would be rejected, but it would be accepted with
(A, A)changed toA). However, adding a third check when we already check instantiability and representability makes me a little uncomfortable... is there a more general rule?nikomatsakis commentedon Jan 12, 2013
Interesting. I hadn't thought about this possibility for infinite type generation, though it seems obvious in retrospect. @catamorphism I'm not sure what the best rule is. I think the type is both instantiable and representable as is (considering each type independently, the size of any given type is computable for a given
A). This is more of amonomorphizablecriterion. There is a similar problem in function generation that we address by enforcing a maximum expansion depth in trans (which I've never been happy with, partly because I feel trans ought to be infallible). Still, it is rather tricky to summarize the correct criteria. If I understand it correctly, I think the one you proposed is too strict.Consider something like:
Ignoring the question of instantiability, which can be addressed by adding some
Option<>types, I feel like this ought to be legal. And yetBdoes not useAmonomorphically. It seems like the rule is that whenA<B...Z>transitively includes a reference to a typeA<B'...Z'>, for each type parameterT in B...Z and T' in B'...Z'eitherT=T'orTdoes not includeT'. I think this is the correct rule, but I would want to try and prove it. The basic idea is that the only way to generate an infinite type expansion is to keep building compound types that include the input types. It feels like there is a simple inductive argument that can make this case.I would like to replace the trans check with a similar test. I remember trying to think of a good rule for trans and getting frustrated because any rule I came up with amounted to tracing the call graph in a fairly complex and deep way---basically redoing the work trans was already doing. The simplest thing of course for this case would be to do what trans does: expand the type and keep a set of types we've seen. If the recursion depth ever grows too high then we abort.
As for the annoyance of having three distinct admission tests for types, I hear you. I was already annoyed that there seemed to be a need for two such tests. But they all test different things and I don't see an obvious way to combine them.
bblum commentedon Mar 3, 2013
Not sure if a more minimal example is needed, but here's one:
(If you remove the option, it errors, telling you to use an option.)
graydon commentedon Mar 22, 2013
reproduced on 2013-03-22
graydon commentedon Mar 22, 2013
non-critical for 0.6, de-milestoning
ILyoan commentedon May 8, 2013
reproduced on d35eb6e
catamorphism commentedon Jun 27, 2013
Nominating for milestone 1, well-defined. This is an annoying edge case, but I think it's important to specify what type definitions are acceptable.
graydon commentedon Aug 1, 2013
accepted for well-defined milestone
isabelmu commentedon Feb 1, 2014
@bblum's example is actually fixed by adding a non-representable error for structs (pull request #11839, issue #3779). Here is a new minimal example for this issue, usable as a test:
Equally:
pcwalton commentedon Jun 14, 2014
Nominating for removal from 1.0 milestone, as this can be fixed backwards compatibly.
brson commentedon Jun 19, 2014
P-high, not 1.0
Twisol commentedon Jan 4, 2015
This no longer causes an ICE. (Code modified slightly to match current syntax, disable style warnings, and add a
main.)steveklabnik commentedon Jan 16, 2015
Thanks @Twisol !
goffrie commentedon Feb 8, 2015
I can still make rustc overflow its stack by using the recursive type:
pnkfelix commentedon Jul 30, 2018
The compiler is currently infinite-looping (but not, AFAICT, stack-overflowing) on the @goffrie example.
Actually maybe I'll open a fresh issue to track this.