//@ compile-flags:-g -Copt-level=0 -C panic=abort // Check that debug information exists for structures containing loops (cyclic references). // Previously it may incorrectly prune member information during recursive type inference check. // CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Arc { buffer: Box>, } struct Shared { shared: Arc>>, } struct Handle { shared: Shared, } struct Core { inner: Arc>>, } #[no_mangle] extern "C" fn test() { let с = Core { inner: Arc::new(Inner { buffer: Box::new(MaybeUninit::uninit()) }) }; std::hint::black_box(с); }