error[E0277]: the trait bound `NonTrivialDrop: ~const A` is not satisfied --> $DIR/const-drop-fail-2.rs:31:23 | LL | const _: () = check::>( | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `~const A` is not implemented for `NonTrivialDrop` | note: the trait `A` is implemented for `NonTrivialDrop`, but that implementation is not `const` --> $DIR/const-drop-fail-2.rs:31:23 | LL | const _: () = check::>( | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `ConstDropImplWithBounds` --> $DIR/const-drop-fail-2.rs:21:35 | LL | struct ConstDropImplWithBounds(PhantomData); | ^^^^^^^^ required by this bound in `ConstDropImplWithBounds` error[E0277]: the trait bound `NonTrivialDrop: ~const A` is not satisfied --> $DIR/const-drop-fail-2.rs:32:5 | LL | ConstDropImplWithBounds(PhantomData) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `~const A` is not implemented for `NonTrivialDrop` | note: the trait `A` is implemented for `NonTrivialDrop`, but that implementation is not `const` --> $DIR/const-drop-fail-2.rs:32:5 | LL | ConstDropImplWithBounds(PhantomData) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `ConstDropImplWithBounds` --> $DIR/const-drop-fail-2.rs:21:35 | LL | struct ConstDropImplWithBounds(PhantomData); | ^^^^^^^^ required by this bound in `ConstDropImplWithBounds` error[E0367]: `Drop` impl requires `T: ~const A` but the struct it is implemented for does not --> $DIR/const-drop-fail-2.rs:37:9 | LL | impl const Drop for ConstDropImplWithNonConstBounds { | ^^^^^^^^ | note: the implementor must specify the same requirement --> $DIR/const-drop-fail-2.rs:35:1 | LL | struct ConstDropImplWithNonConstBounds(PhantomData); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to 3 previous errors Some errors have detailed explanations: E0277, E0367. For more information about an error, try `rustc --explain E0277`.