| //@ aux-build:minicore.rs |
| //@ compile-flags: --crate-type=lib -Znext-solver |
| //@ revisions: yes no |
| //@[yes] check-pass |
| // gate-test-const_destruct |
| |
| #![feature(no_core, const_trait_impl)] |
| #![cfg_attr(yes, feature(const_destruct))] |
| #![no_std] |
| #![no_core] |
| |
| extern crate minicore; |
| use minicore::*; |
| |
| struct ConstDrop; |
| impl const Drop for ConstDrop { |
| fn drop(&mut self) {} |
| } |
| |
| // Make sure that `ConstDrop` can only be dropped when the `const_drop` |
| // feature gate is enabled. Otherwise, we should error if there is a drop |
| // impl at all. |
| const fn test() { |
| let _ = ConstDrop; |
| //[no]~^ ERROR destructor of `ConstDrop` cannot be evaluated at compile-time |
| } |