summaryrefslogtreecommitdiffstats
path: root/src/test/ui/kindck/kindck-copy.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/kindck/kindck-copy.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/kindck/kindck-copy.rs')
-rw-r--r--src/test/ui/kindck/kindck-copy.rs71
1 files changed, 0 insertions, 71 deletions
diff --git a/src/test/ui/kindck/kindck-copy.rs b/src/test/ui/kindck/kindck-copy.rs
deleted file mode 100644
index 6df98c230..000000000
--- a/src/test/ui/kindck/kindck-copy.rs
+++ /dev/null
@@ -1,71 +0,0 @@
-// Test which of the builtin types are considered POD.
-
-use std::rc::Rc;
-
-fn assert_copy<T:Copy>() { }
-
-trait Dummy { }
-
-#[derive(Copy, Clone)]
-struct MyStruct {
- x: isize,
- y: isize,
-}
-
-struct MyNoncopyStruct {
- x: Box<char>,
-}
-
-fn test<'a,T,U:Copy>(_: &'a isize) {
- // lifetime pointers are ok...
- assert_copy::<&'static isize>();
- assert_copy::<&'a isize>();
- assert_copy::<&'a str>();
- assert_copy::<&'a [isize]>();
-
- // ...unless they are mutable
- assert_copy::<&'static mut isize>(); //~ ERROR : Copy` is not satisfied
- assert_copy::<&'a mut isize>(); //~ ERROR : Copy` is not satisfied
-
- // boxes are not ok
- assert_copy::<Box<isize>>(); //~ ERROR : Copy` is not satisfied
- assert_copy::<String>(); //~ ERROR : Copy` is not satisfied
- assert_copy::<Vec<isize> >(); //~ ERROR : Copy` is not satisfied
- assert_copy::<Box<&'a mut isize>>(); //~ ERROR : Copy` is not satisfied
-
- // borrowed object types are generally ok
- assert_copy::<&'a dyn Dummy>();
- assert_copy::<&'a (dyn Dummy + Send)>();
- assert_copy::<&'static (dyn Dummy + Send)>();
-
- // owned object types are not ok
- assert_copy::<Box<dyn Dummy>>(); //~ ERROR : Copy` is not satisfied
- assert_copy::<Box<dyn Dummy + Send>>(); //~ ERROR : Copy` is not satisfied
-
- // mutable object types are not ok
- assert_copy::<&'a mut (dyn Dummy + Send)>(); //~ ERROR : Copy` is not satisfied
-
- // unsafe ptrs are ok
- assert_copy::<*const isize>();
- assert_copy::<*const &'a mut isize>();
-
- // regular old ints and such are ok
- assert_copy::<isize>();
- assert_copy::<bool>();
- assert_copy::<()>();
-
- // tuples are ok
- assert_copy::<(isize,isize)>();
-
- // structs of POD are ok
- assert_copy::<MyStruct>();
-
- // structs containing non-POD are not ok
- assert_copy::<MyNoncopyStruct>(); //~ ERROR : Copy` is not satisfied
-
- // ref counted types are not ok
- assert_copy::<Rc<isize>>(); //~ ERROR : Copy` is not satisfied
-}
-
-pub fn main() {
-}