diff options
| author | bors <bors@rust-lang.org> | 2021-11-09 17:13:44 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-11-09 17:13:44 +0000 |
| commit | d6082292a6f3207cbdacd6633a5b9d1476bb6772 (patch) | |
| tree | 24c76f1c4480c32ef3c7c30c69b5d1528f93ef6c /src/test | |
| parent | 07acdb48a0e0b22d08a45e3ced0378e0027b40eb (diff) | |
| parent | 61b1394ac7d16bcb73684952c77f8239effe9dbe (diff) | |
Auto merge of #86041 - bstrie:unmagic-array-copy, r=jackh726
Replace Copy/Clone compiler magic on arrays with library impls With const generics the compiler no longer needs to fake these impls.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/builtin-clone-unwind.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/chalkify/builtin-copy-clone.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0206.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/error-codes/E0206.stderr | 24 |
4 files changed, 7 insertions, 30 deletions
diff --git a/src/test/ui/builtin-clone-unwind.rs b/src/test/ui/builtin-clone-unwind.rs index 339bcfa1060..2caedb649a3 100644 --- a/src/test/ui/builtin-clone-unwind.rs +++ b/src/test/ui/builtin-clone-unwind.rs @@ -53,7 +53,7 @@ fn main() { ].clone(); }); - assert!(result.is_err()); + assert!(child.is_err()); assert_eq!( 1, Rc::strong_count(&counter) diff --git a/src/test/ui/chalkify/builtin-copy-clone.rs b/src/test/ui/chalkify/builtin-copy-clone.rs index d403514b553..4323e87b08d 100644 --- a/src/test/ui/chalkify/builtin-copy-clone.rs +++ b/src/test/ui/chalkify/builtin-copy-clone.rs @@ -23,11 +23,12 @@ fn test_copy_clone<T: Copy + Clone>(arg: T) { fn foo() { } fn main() { + // FIXME: add closures when they're considered WF test_copy_clone(foo); let f: fn() = foo; test_copy_clone(f); - // FIXME: add closures when they're considered WF - test_copy_clone([1; 56]); + // FIXME(#86252): reinstate array test after chalk upgrade + //test_copy_clone([1; 56]); test_copy_clone((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)); test_copy_clone((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true, 'a', 1.1)); test_copy_clone(()); diff --git a/src/test/ui/error-codes/E0206.rs b/src/test/ui/error-codes/E0206.rs index bace0467581..0f3d427ce11 100644 --- a/src/test/ui/error-codes/E0206.rs +++ b/src/test/ui/error-codes/E0206.rs @@ -1,9 +1,3 @@ -type Foo = [u8; 256]; - -impl Copy for Foo { } -//~^ ERROR the trait `Copy` may not be implemented for this type -//~| ERROR only traits defined in the current crate can be implemented for arbitrary types - #[derive(Copy, Clone)] struct Bar; diff --git a/src/test/ui/error-codes/E0206.stderr b/src/test/ui/error-codes/E0206.stderr index e4ad4ffb45f..57ae2647d33 100644 --- a/src/test/ui/error-codes/E0206.stderr +++ b/src/test/ui/error-codes/E0206.stderr @@ -1,27 +1,9 @@ error[E0206]: the trait `Copy` may not be implemented for this type - --> $DIR/E0206.rs:3:15 - | -LL | impl Copy for Foo { } - | ^^^ type is not a structure or enumeration - -error[E0206]: the trait `Copy` may not be implemented for this type - --> $DIR/E0206.rs:10:15 + --> $DIR/E0206.rs:4:15 | LL | impl Copy for &'static mut Bar { } | ^^^^^^^^^^^^^^^^ type is not a structure or enumeration -error[E0117]: only traits defined in the current crate can be implemented for arbitrary types - --> $DIR/E0206.rs:3:1 - | -LL | impl Copy for Foo { } - | ^^^^^^^^^^^^^^--- - | | | - | | this is not defined in the current crate because arrays are always foreign - | impl doesn't use only types from inside the current crate - | - = note: define and implement a trait or new type instead - -error: aborting due to 3 previous errors +error: aborting due to previous error -Some errors have detailed explanations: E0117, E0206. -For more information about an error, try `rustc --explain E0117`. +For more information about this error, try `rustc --explain E0206`. |
