diff options
| author | Oli Scherer <github333195615777966@oli-obk.de> | 2025-04-29 10:15:19 +0000 |
|---|---|---|
| committer | Oli Scherer <github333195615777966@oli-obk.de> | 2025-04-29 10:28:10 +0000 |
| commit | 923ca85a18e576ac0b132e6adf41541285f55ccc (patch) | |
| tree | b9c6f8016a86e67e153a102f7f60ea88d9eb3d76 | |
| parent | 1b8ab72680f36e783af84c1a3c4f8508572bd9f9 (diff) | |
| download | rust-923ca85a18e576ac0b132e6adf41541285f55ccc.tar.gz rust-923ca85a18e576ac0b132e6adf41541285f55ccc.zip | |
Add test
4 files changed, 63 insertions, 0 deletions
diff --git a/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs b/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs new file mode 100644 index 00000000000..060a543d6c3 --- /dev/null +++ b/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs @@ -0,0 +1,17 @@ +//@[new] compile-flags: -Znext-solver +//@ revisions: old new +//@ check-pass + +use std::mem::ManuallyDrop; + +struct Moose; + +impl Drop for Moose { + fn drop(&mut self) {} +} + +struct ConstDropper<T>(ManuallyDrop<T>); + +const fn foo(_var: ConstDropper<Moose>) {} + +fn main() {} diff --git a/tests/ui/traits/const-traits/drop-manually-drop.new.stderr b/tests/ui/traits/const-traits/drop-manually-drop.new.stderr new file mode 100644 index 00000000000..ab152f73897 --- /dev/null +++ b/tests/ui/traits/const-traits/drop-manually-drop.new.stderr @@ -0,0 +1,11 @@ +error[E0493]: destructor of `ConstDropper<Moose>` cannot be evaluated at compile-time + --> $DIR/drop-manually-drop.rs:21:14 + | +LL | const fn foo(_var: ConstDropper<Moose>) {} + | ^^^^ - value is dropped here + | | + | the destructor for this type cannot be evaluated in constant functions + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0493`. diff --git a/tests/ui/traits/const-traits/drop-manually-drop.old.stderr b/tests/ui/traits/const-traits/drop-manually-drop.old.stderr new file mode 100644 index 00000000000..ab152f73897 --- /dev/null +++ b/tests/ui/traits/const-traits/drop-manually-drop.old.stderr @@ -0,0 +1,11 @@ +error[E0493]: destructor of `ConstDropper<Moose>` cannot be evaluated at compile-time + --> $DIR/drop-manually-drop.rs:21:14 + | +LL | const fn foo(_var: ConstDropper<Moose>) {} + | ^^^^ - value is dropped here + | | + | the destructor for this type cannot be evaluated in constant functions + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0493`. diff --git a/tests/ui/traits/const-traits/drop-manually-drop.rs b/tests/ui/traits/const-traits/drop-manually-drop.rs new file mode 100644 index 00000000000..9dd3c1e2281 --- /dev/null +++ b/tests/ui/traits/const-traits/drop-manually-drop.rs @@ -0,0 +1,24 @@ +//@[new] compile-flags: -Znext-solver +//@ revisions: old new + +#![feature(const_destruct)] +#![feature(const_trait_impl)] + +use std::mem::ManuallyDrop; + +struct Moose; + +impl Drop for Moose { + fn drop(&mut self) {} +} + +struct ConstDropper<T>(ManuallyDrop<T>); + +impl<T> const Drop for ConstDropper<T> { + fn drop(&mut self) {} +} + +const fn foo(_var: ConstDropper<Moose>) {} +//~^ ERROR destructor of `ConstDropper<Moose>` cannot be evaluated at compile-time + +fn main() {} |
