error: const `impl` for trait `Drop` which is not marked with `#[const_trait]` --> $DIR/const-drop.rs:12:16 | LL | impl<'a> const Drop for S<'a> { | ^^^^ | = note: marking a trait with `#[const_trait]` ensures all default method bodies are `const` = note: adding a non-const method body in the future would be a breaking change error: const `impl` for trait `Drop` which is not marked with `#[const_trait]` --> $DIR/const-drop.rs:46:16 | LL | impl const Drop for ConstDrop { | ^^^^ | = note: marking a trait with `#[const_trait]` ensures all default method bodies are `const` = note: adding a non-const method body in the future would be a breaking change error: const `impl` for trait `Drop` which is not marked with `#[const_trait]` --> $DIR/const-drop.rs:67:37 | LL | impl const Drop for ConstDropWithBound { | ^^^^ | = note: marking a trait with `#[const_trait]` ensures all default method bodies are `const` = note: adding a non-const method body in the future would be a breaking change error: const `impl` for trait `Drop` which is not marked with `#[const_trait]` --> $DIR/const-drop.rs:75:30 | LL | impl const Drop for ConstDropWithNonconstBound { | ^^^^ | = note: marking a trait with `#[const_trait]` ensures all default method bodies are `const` = note: adding a non-const method body in the future would be a breaking change error: `~const` can only be applied to `#[const_trait]` traits --> $DIR/const-drop.rs:18:15 | LL | const fn a(_: T) {} | ^^^^^^ error: `~const` can only be applied to `#[const_trait]` traits --> $DIR/const-drop.rs:18:15 | LL | const fn a(_: T) {} | ^^^^^^ | = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no` error[E0277]: the trait bound `T: const SomeTrait` is not satisfied --> $DIR/const-drop.rs:67:46 | LL | impl const Drop for ConstDropWithBound { | ^^^^^^^^^^^^^^^^^^^^^ | note: required by a bound in `t::ConstDropWithBound` --> $DIR/const-drop.rs:65:38 | LL | pub struct ConstDropWithBound(pub core::marker::PhantomData); | ^^^^^ required by this bound in `ConstDropWithBound` error[E0277]: the trait bound `T: const SomeTrait` is not satisfied --> $DIR/const-drop.rs:68:22 | LL | fn drop(&mut self) { | ^^^^ | note: required by a bound in `t::ConstDropWithBound` --> $DIR/const-drop.rs:65:38 | LL | pub struct ConstDropWithBound(pub core::marker::PhantomData); | ^^^^^ required by this bound in `ConstDropWithBound` error[E0493]: destructor of `T` cannot be evaluated at compile-time --> $DIR/const-drop.rs:18:32 | LL | const fn a(_: T) {} | ^ the destructor for this type cannot be evaluated in constant functions error[E0015]: cannot call non-const fn `::foo` in constant functions --> $DIR/const-drop.rs:69:13 | LL | T::foo(); | ^^^^^^^^ | = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants help: add `#![feature(effects)]` to the crate attributes to enable | LL + #![feature(effects)] | error: aborting due to 10 previous errors Some errors have detailed explanations: E0015, E0277, E0493. For more information about an error, try `rustc --explain E0015`.