#![feature(const_trait_impl)] #![feature(const_destruct)] use std::marker::Destruct; struct NotConstDrop; impl Drop for NotConstDrop { fn drop(&mut self) {} } struct ConstDrop(NotConstDrop); //~^ ERROR: `NotConstDrop` does not implement `[const] Destruct` impl const Drop for ConstDrop { fn drop(&mut self) {} } struct ConstDrop2(T); //~^ ERROR: `T` does not implement `[const] Destruct` impl const Drop for ConstDrop2 { fn drop(&mut self) {} } struct ConstDrop3(T); impl const Drop for ConstDrop3 { fn drop(&mut self) {} } fn main() {}