// run-pass #![allow(unused_assignments)] #![allow(unused_variables)] use std::fmt; struct NoisyDrop(#[allow(dead_code)] T); impl Drop for NoisyDrop { fn drop(&mut self) {} } struct Bar(#[allow(dead_code)] [*const NoisyDrop; 2]); fn fine() { let (u,b); u = vec![43]; b = Bar([&NoisyDrop(&u), &NoisyDrop(&u)]); } #[allow(dead_code)] struct Bar2(*const NoisyDrop, *const NoisyDrop); fn lolwut() { let (u,v); u = vec![43]; v = Bar2(&NoisyDrop(&u), &NoisyDrop(&u)); } fn main() { fine(); lolwut() }