diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-02-19 14:46:29 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-02-25 18:35:26 +0200 |
| commit | c832e6f3272fd01e22a6370e7745e305fe13a4c9 (patch) | |
| tree | c26d1acd868b805dbddb49259a70ff1e2b9d3548 /src/test | |
| parent | 9890e0466d951d1b0020ae38e2a4c0d8c43cfea1 (diff) | |
| download | rust-c832e6f3272fd01e22a6370e7745e305fe13a4c9.tar.gz rust-c832e6f3272fd01e22a6370e7745e305fe13a4c9.zip | |
rustc_typeck: rework coherence to be almost completely on-demand.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/compile-fail/E0117.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/coherence-cross-crate-conflict.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/coherence-default-trait-impl.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/coherence-impls-sized.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/span/E0204.stderr | 18 |
5 files changed, 22 insertions, 13 deletions
diff --git a/src/test/compile-fail/E0117.rs b/src/test/compile-fail/E0117.rs index 4ba9c3382f3..3da00da205f 100644 --- a/src/test/compile-fail/E0117.rs +++ b/src/test/compile-fail/E0117.rs @@ -12,6 +12,8 @@ impl Drop for u32 {} //~ ERROR E0117 //~^ NOTE impl doesn't use types inside crate //~| NOTE the impl does not reference any types defined in this crate //~| NOTE define and implement a trait or new type instead +//~| ERROR the Drop trait may only be implemented on structures +//~| implementing Drop requires a struct fn main() { } diff --git a/src/test/compile-fail/coherence-cross-crate-conflict.rs b/src/test/compile-fail/coherence-cross-crate-conflict.rs index 9f74afbb2b3..aac870293fd 100644 --- a/src/test/compile-fail/coherence-cross-crate-conflict.rs +++ b/src/test/compile-fail/coherence-cross-crate-conflict.rs @@ -17,6 +17,7 @@ use trait_impl_conflict::Foo; impl<A> Foo for A { //~^ ERROR type parameter `A` must be used as the type parameter for some local type + //~| ERROR conflicting implementations of trait `trait_impl_conflict::Foo` for type `isize` } fn main() { diff --git a/src/test/compile-fail/coherence-default-trait-impl.rs b/src/test/compile-fail/coherence-default-trait-impl.rs index 3d109de76cc..15a80c64f8b 100644 --- a/src/test/compile-fail/coherence-default-trait-impl.rs +++ b/src/test/compile-fail/coherence-default-trait-impl.rs @@ -13,9 +13,9 @@ trait MyTrait {} impl MyTrait for .. {} +//~^ ERROR redundant default implementations of trait `MyTrait` impl MyTrait for .. {} -//~^ ERROR redundant default implementations of trait `MyTrait` trait MySafeTrait {} diff --git a/src/test/compile-fail/coherence-impls-sized.rs b/src/test/compile-fail/coherence-impls-sized.rs index 79767e5157b..60b5d14d158 100644 --- a/src/test/compile-fail/coherence-impls-sized.rs +++ b/src/test/compile-fail/coherence-impls-sized.rs @@ -27,14 +27,20 @@ impl Sized for TestE {} //~ ERROR E0322 impl Sized for MyType {} //~ ERROR E0322 //~^ impl of 'Sized' not allowed -impl Sized for (MyType, MyType) {} //~ ERROR E0117 +impl Sized for (MyType, MyType) {} //~ ERROR E0322 +//~^ impl of 'Sized' not allowed +//~| ERROR E0117 impl Sized for &'static NotSync {} //~ ERROR E0322 //~^ impl of 'Sized' not allowed -impl Sized for [MyType] {} //~ ERROR E0117 +impl Sized for [MyType] {} //~ ERROR E0322 +//~^ impl of 'Sized' not allowed +//~| ERROR E0117 -impl Sized for &'static [NotSync] {} //~ ERROR E0117 +impl Sized for &'static [NotSync] {} //~ ERROR E0322 +//~^ impl of 'Sized' not allowed +//~| ERROR E0117 fn main() { } diff --git a/src/test/ui/span/E0204.stderr b/src/test/ui/span/E0204.stderr index 81a60a9dd30..4fe6afaca8e 100644 --- a/src/test/ui/span/E0204.stderr +++ b/src/test/ui/span/E0204.stderr @@ -8,15 +8,6 @@ error[E0204]: the trait `Copy` may not be implemented for this type | ^^^^ error[E0204]: the trait `Copy` may not be implemented for this type - --> $DIR/E0204.rs:27:6 - | -23 | Bar { x: Vec<u32> }, - | ----------- this field does not implement `Copy` -... -27 | impl Copy for EFoo { } - | ^^^^ - -error[E0204]: the trait `Copy` may not be implemented for this type --> $DIR/E0204.rs:17:10 | 17 | #[derive(Copy)] @@ -26,6 +17,15 @@ error[E0204]: the trait `Copy` may not be implemented for this type | ---------------- this field does not implement `Copy` error[E0204]: the trait `Copy` may not be implemented for this type + --> $DIR/E0204.rs:27:6 + | +23 | Bar { x: Vec<u32> }, + | ----------- this field does not implement `Copy` +... +27 | impl Copy for EFoo { } + | ^^^^ + +error[E0204]: the trait `Copy` may not be implemented for this type --> $DIR/E0204.rs:29:10 | 29 | #[derive(Copy)] |
