mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
100 lines
4.1 KiB
Plaintext
100 lines
4.1 KiB
Plaintext
error[E0277]: can't drop `NonTrivialDrop` in const contexts
|
|
--> $DIR/const-drop-fail.rs:44:5
|
|
|
|
|
LL | const _: () = check($exp);
|
|
| ----- required by a bound introduced by this call
|
|
...
|
|
LL | NonTrivialDrop,
|
|
| ^^^^^^^^^^^^^^ the trait `~const Destruct` is not implemented for `NonTrivialDrop`
|
|
|
|
|
= note: the trait bound `NonTrivialDrop: ~const Destruct` is not satisfied
|
|
note: required by a bound in `check`
|
|
--> $DIR/const-drop-fail.rs:35:19
|
|
|
|
|
LL | const fn check<T: ~const Destruct>(_: T) {}
|
|
| ^^^^^^^^^^^^^^^ required by this bound in `check`
|
|
help: consider borrowing here
|
|
|
|
|
LL | &NonTrivialDrop,
|
|
| +
|
|
LL | &mut NonTrivialDrop,
|
|
| ++++
|
|
|
|
error[E0277]: can't drop `NonTrivialDrop` in const contexts
|
|
--> $DIR/const-drop-fail.rs:46:5
|
|
|
|
|
LL | const _: () = check($exp);
|
|
| ----- required by a bound introduced by this call
|
|
...
|
|
LL | ConstImplWithDropGlue(NonTrivialDrop),
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `ConstImplWithDropGlue`, the trait `~const Destruct` is not implemented for `NonTrivialDrop`
|
|
|
|
|
note: the trait `Destruct` is implemented for `NonTrivialDrop`, but that implementation is not `const`
|
|
--> $DIR/const-drop-fail.rs:46:5
|
|
|
|
|
LL | ConstImplWithDropGlue(NonTrivialDrop),
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
note: required because it appears within the type `ConstImplWithDropGlue`
|
|
--> $DIR/const-drop-fail.rs:16:8
|
|
|
|
|
LL | struct ConstImplWithDropGlue(NonTrivialDrop);
|
|
| ^^^^^^^^^^^^^^^^^^^^^
|
|
note: required by a bound in `check`
|
|
--> $DIR/const-drop-fail.rs:35:19
|
|
|
|
|
LL | const fn check<T: ~const Destruct>(_: T) {}
|
|
| ^^^^^^^^^^^^^^^ required by this bound in `check`
|
|
|
|
error[E0277]: the trait bound `NonTrivialDrop: ~const A` is not satisfied
|
|
--> $DIR/const-drop-fail.rs:48:47
|
|
|
|
|
LL | ConstDropImplWithBounds::<NonTrivialDrop>(PhantomData),
|
|
| ----------------------------------------- ^^^^^^^^^^^ the trait `~const A` is not implemented for `NonTrivialDrop`
|
|
| |
|
|
| required by a bound introduced by this call
|
|
|
|
|
note: the trait `A` is implemented for `NonTrivialDrop`, but that implementation is not `const`
|
|
--> $DIR/const-drop-fail.rs:48:47
|
|
|
|
|
LL | ConstDropImplWithBounds::<NonTrivialDrop>(PhantomData),
|
|
| ^^^^^^^^^^^
|
|
note: required by a bound in `ConstDropImplWithBounds`
|
|
--> $DIR/const-drop-fail.rs:27:35
|
|
|
|
|
LL | struct ConstDropImplWithBounds<T: ~const A>(PhantomData<T>);
|
|
| ^^^^^^^^ required by this bound in `ConstDropImplWithBounds`
|
|
|
|
error[E0277]: the trait bound `NonTrivialDrop: ~const A` is not satisfied
|
|
--> $DIR/const-drop-fail.rs:48:5
|
|
|
|
|
LL | ConstDropImplWithBounds::<NonTrivialDrop>(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.rs:48:5
|
|
|
|
|
LL | ConstDropImplWithBounds::<NonTrivialDrop>(PhantomData),
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
note: required by a bound in `ConstDropImplWithBounds`
|
|
--> $DIR/const-drop-fail.rs:27:35
|
|
|
|
|
LL | struct ConstDropImplWithBounds<T: ~const A>(PhantomData<T>);
|
|
| ^^^^^^^^ 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.rs:55:9
|
|
|
|
|
LL | impl<T: ~const A> const Drop for ConstDropImplWithNonConstBounds<T> {
|
|
| ^^^^^^^^
|
|
|
|
|
note: the implementor must specify the same requirement
|
|
--> $DIR/const-drop-fail.rs:53:1
|
|
|
|
|
LL | struct ConstDropImplWithNonConstBounds<T: A>(PhantomData<T>);
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: aborting due to 5 previous errors
|
|
|
|
Some errors have detailed explanations: E0277, E0367.
|
|
For more information about an error, try `rustc --explain E0277`.
|