about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/coherence/coherence-all-remote.rs6
-rw-r--r--src/test/ui/coherence/coherence-bigint-param.rs6
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-implemented.rs9
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs8
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs7
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs8
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-specific-trait.rs8
-rw-r--r--src/test/ui/coherence/coherence-blanket-conflicts-with-specific.rs8
-rw-r--r--src/test/ui/coherence/coherence-conflicting-negative-trait-impl.rs9
-rw-r--r--src/test/ui/coherence/coherence-cow.a.stderr4
-rw-r--r--src/test/ui/coherence/coherence-cow.b.stderr4
-rw-r--r--src/test/ui/coherence/coherence-cow.c.stderr2
-rw-r--r--src/test/ui/coherence/coherence-cow.rs19
-rw-r--r--src/test/ui/coherence/coherence-cross-crate-conflict.rs10
-rw-r--r--src/test/ui/coherence/coherence-default-trait-impl.rs9
-rw-r--r--src/test/ui/coherence/coherence-error-suppression.rs8
-rw-r--r--src/test/ui/coherence/coherence-impl-trait-for-trait-object-safe.rs8
-rw-r--r--src/test/ui/coherence/coherence-impl-trait-for-trait.rs16
-rw-r--r--src/test/ui/coherence/coherence-impls-copy.rs38
-rw-r--r--src/test/ui/coherence/coherence-impls-send.rs15
-rw-r--r--src/test/ui/coherence/coherence-impls-sized.rs58
-rw-r--r--src/test/ui/coherence/coherence-inherited-assoc-ty-cycle-err.rs6
-rw-r--r--src/test/ui/coherence/coherence-lone-type-parameter.rs7
-rw-r--r--src/test/ui/coherence/coherence-negative-impls-safe.rs6
-rw-r--r--src/test/ui/coherence/coherence-no-direct-lifetime-dispatch.rs8
-rw-r--r--src/test/ui/coherence/coherence-orphan.rs8
-rw-r--r--src/test/ui/coherence/coherence-overlap-all-t-and-tuple.rs8
-rw-r--r--src/test/ui/coherence/coherence-overlap-downstream-inherent.rs10
-rw-r--r--src/test/ui/coherence/coherence-overlap-downstream.rs10
-rw-r--r--src/test/ui/coherence/coherence-overlap-issue-23516-inherent.rs7
-rw-r--r--src/test/ui/coherence/coherence-overlap-issue-23516.rs7
-rw-r--r--src/test/ui/coherence/coherence-overlap-messages.rs25
-rw-r--r--src/test/ui/coherence/coherence-overlap-upstream-inherent.rs7
-rw-r--r--src/test/ui/coherence/coherence-overlap-upstream.rs7
-rw-r--r--src/test/ui/coherence/coherence-overlapping-pairs.rs6
-rw-r--r--src/test/ui/coherence/coherence-pair-covered-uncovered-1.rs7
-rw-r--r--src/test/ui/coherence/coherence-pair-covered-uncovered.rs6
-rw-r--r--src/test/ui/coherence/coherence-projection-conflict-orphan.rs7
-rw-r--r--src/test/ui/coherence/coherence-projection-conflict-ty-param.rs8
-rw-r--r--src/test/ui/coherence/coherence-projection-conflict.rs8
-rw-r--r--src/test/ui/coherence/coherence-projection-ok-orphan.rs3
-rw-r--r--src/test/ui/coherence/coherence-projection-ok.rs3
-rw-r--r--src/test/ui/coherence/coherence-tuple-conflict.rs8
-rw-r--r--src/test/ui/coherence/coherence-vec-local-2.rs7
-rw-r--r--src/test/ui/coherence/coherence-vec-local.rs7
-rw-r--r--src/test/ui/coherence/coherence_copy_like_err_fundamental_struct.rs3
-rw-r--r--src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_ref.rs3
-rw-r--r--src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_tuple.rs6
-rw-r--r--src/test/ui/coherence/coherence_copy_like_err_struct.rs7
-rw-r--r--src/test/ui/coherence/coherence_copy_like_err_tuple.rs7
-rw-r--r--src/test/ui/coherence/coherence_inherent.rs8
-rw-r--r--src/test/ui/coherence/coherence_inherent_cc.rs7
-rw-r--r--src/test/ui/coherence/coherence_local.rs3
-rw-r--r--src/test/ui/coherence/coherence_local_err_struct.rs7
-rw-r--r--src/test/ui/coherence/coherence_local_err_tuple.rs7
-rw-r--r--src/test/ui/coherence/coherence_local_ref.rs3
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/coherence_copy_like_lib.rs20
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/coherence_inherent_cc_lib.rs21
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/coherence_lib.rs25
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/coherence_orphan_lib.rs13
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/go_trait.rs53
-rw-r--r--src/test/ui/re_rebalance_coherence/auxiliary/trait_impl_conflict.rs16
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-all-remote.rs21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-all-remote.stderr11
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-bigint-param.rs23
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-bigint-param.stderr11
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.rs40
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs36
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs31
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.stderr13
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs38
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.rs40
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.rs35
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.stderr21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cow.a.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cow.b.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cow.c.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cow.rs37
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.rs26
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.stderr21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.rs26
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.stderr16
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-error-suppression.rs27
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-error-suppression.stderr9
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.rs21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.stderr11
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.stderr21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-copy.rs54
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-copy.stderr87
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-send.rs41
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-send.stderr37
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-sized.rs47
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-impls-sized.stderr67
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.rs35
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.stderr16
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.rs21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.stderr11
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.rs21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.stderr9
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.rs20
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.stderr11
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-orphan.rs32
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-orphan.stderr21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.rs31
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.stderr23
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.stderr21
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.rs25
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.rs23
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.stderr13
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-messages.rs34
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-messages.stderr44
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.rs27
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.rs27
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.stderr13
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.rs23
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.rs26
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.rs23
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.rs24
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-conflict.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-ok-orphan.rs30
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-projection-ok.rs30
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.rs31
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-vec-local-2.rs25
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-vec-local-2.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-vec-local.rs25
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence-vec-local.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct.rs35
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_ref.rs35
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.rs32
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.rs33
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.rs32
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.stderr14
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_inherent.rs47
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_inherent.stderr13
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_inherent_cc.rs39
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_inherent_cc.stderr13
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local.rs34
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local_err_struct.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local_err_struct.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.rs29
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.stderr12
-rw-r--r--src/test/ui/re_rebalance_coherence/coherence_local_ref.rs28
164 files changed, 400 insertions, 2723 deletions
diff --git a/src/test/ui/coherence/coherence-all-remote.rs b/src/test/ui/coherence/coherence-all-remote.rs
index 5c3bfee822f..68c924ee274 100644
--- a/src/test/ui/coherence/coherence-all-remote.rs
+++ b/src/test/ui/coherence/coherence-all-remote.rs
@@ -1,9 +1,13 @@
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote1;
 
 impl<T> Remote1<T> for isize { }
-//~^ ERROR E0210
+//[old]~^ ERROR E0210
+//[re]~^^ ERROR E0210
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-bigint-param.rs b/src/test/ui/coherence/coherence-bigint-param.rs
index d199c1c2169..24106b4b348 100644
--- a/src/test/ui/coherence/coherence-bigint-param.rs
+++ b/src/test/ui/coherence/coherence-bigint-param.rs
@@ -1,4 +1,7 @@
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote1;
@@ -6,6 +9,7 @@ use lib::Remote1;
 pub struct BigInt;
 
 impl<T> Remote1<BigInt> for T { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[old]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re]~^^ ERROR E0210
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-implemented.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-implemented.rs
index 46d878859e0..098a13e54bf 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-implemented.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-implemented.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::fmt::Debug;
 use std::default::Default;
 
@@ -21,7 +25,10 @@ impl<T:Even> MyTrait for T {
     fn get(&self) -> usize { 0 }
 }
 
-impl<T:Odd> MyTrait for T { //~ ERROR E0119
+impl<T:Odd> MyTrait for T {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
+
     fn get(&self) -> usize { 0 }
 }
 
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs
index 0044760161e..5b76fc0174b 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::fmt::Debug;
 use std::default::Default;
 
@@ -17,7 +21,9 @@ impl<T:Even> MyTrait for T {
     fn get(&self) -> usize { 0 }
 }
 
-impl<T:Odd> MyTrait for T { //~ ERROR E0119
+impl<T:Odd> MyTrait for T {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
     fn get(&self) -> usize { 0 }
 }
 
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs
index 4c62741d2e4..b0aaf57e2a9 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs
@@ -1,4 +1,7 @@
 // aux-build:go_trait.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate go_trait;
 
@@ -12,7 +15,9 @@ impl Go for MyThingy {
     fn go(&self, arg: isize) { }
 }
 
-impl GoMut for MyThingy { //~ ERROR conflicting implementations
+impl GoMut for MyThingy {
+//[old]~^ ERROR conflicting implementations
+//[re]~^^ ERROR E0119
     fn go_mut(&mut self, arg: isize) { }
 }
 
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs
index 42ce638f137..9192d123514 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::fmt::Debug;
 use std::default::Default;
 
@@ -19,7 +23,9 @@ struct MyType {
     dummy: usize
 }
 
-impl MyTrait<MyType> for MyType { //~ ERROR E0119
+impl MyTrait<MyType> for MyType {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
     fn get(&self) -> usize { (*self).clone() }
 }
 
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-trait.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-trait.rs
index 78da8330ba3..51cb10e6185 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-trait.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific-trait.rs
@@ -1,6 +1,10 @@
 // Test that a blank impl for all T:PartialEq conflicts with an impl for some
 // specific T when T:PartialEq.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait OtherTrait {
     fn noop(&self);
 }
@@ -17,7 +21,9 @@ struct MyType {
     dummy: usize
 }
 
-impl MyTrait for MyType { //~ ERROR E0119
+impl MyTrait for MyType {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
     fn get(&self) -> usize { self.dummy }
 }
 
diff --git a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific.rs b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific.rs
index db5f83c865a..3ecb613188a 100644
--- a/src/test/ui/coherence/coherence-blanket-conflicts-with-specific.rs
+++ b/src/test/ui/coherence/coherence-blanket-conflicts-with-specific.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::fmt::Debug;
 use std::default::Default;
 
@@ -16,7 +20,9 @@ struct MyType {
     dummy: usize
 }
 
-impl MyTrait for MyType { //~ ERROR E0119
+impl MyTrait for MyType {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
     fn get(&self) -> usize { self.dummy }
 }
 
diff --git a/src/test/ui/coherence/coherence-conflicting-negative-trait-impl.rs b/src/test/ui/coherence/coherence-conflicting-negative-trait-impl.rs
index 2165fdee5e0..e05fecb11ed 100644
--- a/src/test/ui/coherence/coherence-conflicting-negative-trait-impl.rs
+++ b/src/test/ui/coherence/coherence-conflicting-negative-trait-impl.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 #![feature(overlapping_marker_traits)]
 
@@ -8,11 +11,13 @@ struct TestType<T>(::std::marker::PhantomData<T>);
 unsafe impl<T: MyTrait+'static> Send for TestType<T> {}
 
 impl<T: MyTrait> !Send for TestType<T> {}
-//~^ ERROR conflicting implementations of trait `std::marker::Send`
+//[old]~^ ERROR conflicting implementations of trait `std::marker::Send`
+//[re]~^^ ERROR E0119
 
 unsafe impl<T:'static> Send for TestType<T> {}
 
 impl !Send for TestType<i32> {}
-//~^ ERROR conflicting implementations of trait `std::marker::Send`
+//[old]~^ ERROR conflicting implementations of trait `std::marker::Send`
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-cow.a.stderr b/src/test/ui/coherence/coherence-cow.a.stderr
index 6692e1ce174..2a3e57b1ce2 100644
--- a/src/test/ui/coherence/coherence-cow.a.stderr
+++ b/src/test/ui/coherence/coherence-cow.a.stderr
@@ -1,7 +1,7 @@
 error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-cow.rs:16:1
+  --> $DIR/coherence-cow.rs:28:1
    |
-LL | impl<T> Remote for Pair<T,Cover<T>> { } //[a]~ ERROR E0210
+LL | impl<T> Remote for Pair<T,Cover<T>> { }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
    |
    = note: only traits defined in the current crate can be implemented for a type parameter
diff --git a/src/test/ui/coherence/coherence-cow.b.stderr b/src/test/ui/coherence/coherence-cow.b.stderr
index a148b6898fd..0512baef136 100644
--- a/src/test/ui/coherence/coherence-cow.b.stderr
+++ b/src/test/ui/coherence/coherence-cow.b.stderr
@@ -1,7 +1,7 @@
 error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-cow.rs:19:1
+  --> $DIR/coherence-cow.rs:33:1
    |
-LL | impl<T> Remote for Pair<Cover<T>,T> { } //[b]~ ERROR E0210
+LL | impl<T> Remote for Pair<Cover<T>,T> { }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
    |
    = note: only traits defined in the current crate can be implemented for a type parameter
diff --git a/src/test/ui/coherence/coherence-cow.c.stderr b/src/test/ui/coherence/coherence-cow.c.stderr
index b575dd64e87..1a95d82a03a 100644
--- a/src/test/ui/coherence/coherence-cow.c.stderr
+++ b/src/test/ui/coherence/coherence-cow.c.stderr
@@ -1,5 +1,5 @@
 error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-cow.rs:22:1
+  --> $DIR/coherence-cow.rs:38:1
    |
 LL | impl<T,U> Remote for Pair<Cover<T>,U> { }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
diff --git a/src/test/ui/coherence/coherence-cow.rs b/src/test/ui/coherence/coherence-cow.rs
index d72adf7a531..956b0734148 100644
--- a/src/test/ui/coherence/coherence-cow.rs
+++ b/src/test/ui/coherence/coherence-cow.rs
@@ -1,4 +1,6 @@
-// revisions: a b c
+// revisions: a b c re_a re_b re_c
+
+#![cfg_attr(any(re_a, re_b, re_c), feature(re_rebalance_coherence))]
 
 // aux-build:coherence_lib.rs
 
@@ -12,14 +14,19 @@ use lib::{Remote,Pair};
 
 pub struct Cover<T>(T);
 
-#[cfg(a)]
-impl<T> Remote for Pair<T,Cover<T>> { } //[a]~ ERROR E0210
+#[cfg(any(a, re_a))]
+impl<T> Remote for Pair<T,Cover<T>> { }
+//[a]~^ ERROR E0210
+//[re_a]~^^ ERROR E0117
 
-#[cfg(b)]
-impl<T> Remote for Pair<Cover<T>,T> { } //[b]~ ERROR E0210
+#[cfg(any(b, re_b))]
+impl<T> Remote for Pair<Cover<T>,T> { }
+//[b]~^ ERROR E0210
+//[re_b]~^^ ERROR E0117
 
-#[cfg(c)]
+#[cfg(any(c, re_c))]
 impl<T,U> Remote for Pair<Cover<T>,U> { }
 //[c]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re_c]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-cross-crate-conflict.rs b/src/test/ui/coherence/coherence-cross-crate-conflict.rs
index 07dd585e8c4..9643ab643df 100644
--- a/src/test/ui/coherence/coherence-cross-crate-conflict.rs
+++ b/src/test/ui/coherence/coherence-cross-crate-conflict.rs
@@ -2,12 +2,18 @@
 // generalizes the one upstream
 
 // aux-build:trait_impl_conflict.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 extern crate trait_impl_conflict;
 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`
+    //[old]~^ ERROR type parameter `A` must be used as the type parameter for some local type
+    //[old]~| ERROR conflicting implementations of trait `trait_impl_conflict::Foo` for type `isize`
+    //[re]~^^^ ERROR E0119
+    //[re]~| ERROR E0210
 }
 
 fn main() {
diff --git a/src/test/ui/coherence/coherence-default-trait-impl.rs b/src/test/ui/coherence/coherence-default-trait-impl.rs
index df267ca7bd9..606b4947b5f 100644
--- a/src/test/ui/coherence/coherence-default-trait-impl.rs
+++ b/src/test/ui/coherence/coherence-default-trait-impl.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 
 auto trait MySafeTrait {}
@@ -5,11 +8,13 @@ auto trait MySafeTrait {}
 struct Foo;
 
 unsafe impl MySafeTrait for Foo {}
-//~^ ERROR implementing the trait `MySafeTrait` is not unsafe
+//[old]~^ ERROR implementing the trait `MySafeTrait` is not unsafe
+//[re]~^^ ERROR E0199
 
 unsafe auto trait MyUnsafeTrait {}
 
 impl MyUnsafeTrait for Foo {}
-//~^ ERROR the trait `MyUnsafeTrait` requires an `unsafe impl` declaration
+//[old]~^ ERROR the trait `MyUnsafeTrait` requires an `unsafe impl` declaration
+//[re]~^^ ERROR E0200
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-error-suppression.rs b/src/test/ui/coherence/coherence-error-suppression.rs
index f48652e3499..60b88fb80e4 100644
--- a/src/test/ui/coherence/coherence-error-suppression.rs
+++ b/src/test/ui/coherence/coherence-error-suppression.rs
@@ -1,12 +1,18 @@
 // check that error types in coherence do not cause error cascades.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait Foo {}
 
 impl Foo for i8 {}
 impl Foo for i16 {}
 impl Foo for i32 {}
 impl Foo for i64 {}
-impl Foo for DoesNotExist {} //~ ERROR cannot find type `DoesNotExist` in this scope
+impl Foo for DoesNotExist {}
+//[old]~^ ERROR cannot find type `DoesNotExist` in this scope
+//[re]~^^ ERROR E0412
 impl Foo for u8 {}
 impl Foo for u16 {}
 impl Foo for u32 {}
diff --git a/src/test/ui/coherence/coherence-impl-trait-for-trait-object-safe.rs b/src/test/ui/coherence/coherence-impl-trait-for-trait-object-safe.rs
index e5a7250872f..803e8fc6bca 100644
--- a/src/test/ui/coherence/coherence-impl-trait-for-trait-object-safe.rs
+++ b/src/test/ui/coherence/coherence-impl-trait-for-trait-object-safe.rs
@@ -1,9 +1,15 @@
 // Test that we give suitable error messages when the user attempts to
 // impl a trait `Trait` for its own object type.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 // If the trait is not object-safe, we give a more tailored message
 // because we're such schnuckels:
 trait NotObjectSafe { fn eq(&self, other: Self); }
-impl NotObjectSafe for NotObjectSafe { } //~ ERROR E0038
+impl NotObjectSafe for NotObjectSafe { }
+//[old]~^ ERROR E0038
+//[re]~^^ ERROR E0038
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-impl-trait-for-trait.rs b/src/test/ui/coherence/coherence-impl-trait-for-trait.rs
index e4d59eedcab..dcaf564fdec 100644
--- a/src/test/ui/coherence/coherence-impl-trait-for-trait.rs
+++ b/src/test/ui/coherence/coherence-impl-trait-for-trait.rs
@@ -1,14 +1,24 @@
 // Test that we give suitable error messages when the user attempts to
 // impl a trait `Trait` for its own object type.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait Foo { fn dummy(&self) { } }
 trait Bar: Foo { }
 trait Baz: Bar { }
 
 // Supertraits of Baz are not legal:
-impl Foo for Baz { }   //~ ERROR E0371
-impl Bar for Baz { }   //~ ERROR E0371
-impl Baz for Baz { }   //~ ERROR E0371
+impl Foo for Baz { }
+//[old]~^ ERROR E0371
+//[re]~^^ ERROR E0371
+impl Bar for Baz { }
+//[old]~^ ERROR E0371
+//[re]~^^ ERROR E0371
+impl Baz for Baz { }
+//[old]~^ ERROR E0371
+//[re]~^^ ERROR E0371
 
 // But other random traits are:
 trait Other { }
diff --git a/src/test/ui/coherence/coherence-impls-copy.rs b/src/test/ui/coherence/coherence-impls-copy.rs
index 5bfdfc8f40a..97133bc33ce 100644
--- a/src/test/ui/coherence/coherence-impls-copy.rs
+++ b/src/test/ui/coherence/coherence-impls-copy.rs
@@ -1,11 +1,15 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 
 use std::marker::Copy;
 
 impl Copy for i32 {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `i32`:
-//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-
+//[old]~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `i32`:
+//[old]~| ERROR only traits defined in the current crate can be implemented for arbitrary types
+//[re]~^^^ ERROR E0119
+//[re]~| ERROR E0117
 enum TestE {
   A
 }
@@ -21,23 +25,27 @@ impl Clone for TestE { fn clone(&self) -> Self { *self } }
 impl Copy for MyType {}
 
 impl Copy for &'static mut MyType {}
-//~^ ERROR the trait `Copy` may not be implemented for this type
+//[old]~^ ERROR the trait `Copy` may not be implemented for this type
+//[re]~^^ ERROR E0206
 impl Clone for MyType { fn clone(&self) -> Self { *self } }
 
 impl Copy for (MyType, MyType) {}
-//~^ 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
-
+//[old]~^ ERROR the trait `Copy` may not be implemented for this type
+//[old]~| ERROR only traits defined in the current crate can be implemented for arbitrary types
+//[re]~^^^ ERROR E0206
+//[re]~| ERROR E0117
 impl Copy for &'static NotSync {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&NotSync`:
-
+//[old]~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&NotSync`:
+//[re]~^^  ERROR E0119
 impl Copy for [MyType] {}
-//~^ 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
-
+//[old]~^ ERROR the trait `Copy` may not be implemented for this type
+//[old]~| ERROR only traits defined in the current crate can be implemented for arbitrary types
+//[re]~^^^ ERROR E0206
+//[re]~| ERROR E0117
 impl Copy for &'static [NotSync] {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&[NotSync]`:
-//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-
+//[old]~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&[NotSync]`:
+//[old]~| ERROR only traits defined in the current crate can be implemented for arbitrary types
+//[re]~^^^ ERROR E0119
+//[re]~| ERROR E0117
 fn main() {
 }
diff --git a/src/test/ui/coherence/coherence-impls-send.rs b/src/test/ui/coherence/coherence-impls-send.rs
index b2a9c5be658..ef13e9caa66 100644
--- a/src/test/ui/coherence/coherence-impls-send.rs
+++ b/src/test/ui/coherence/coherence-impls-send.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 #![feature(overlapping_marker_traits)]
 
@@ -15,16 +18,20 @@ impl !Sync for NotSync {}
 unsafe impl Send for TestE {}
 unsafe impl Send for MyType {}
 unsafe impl Send for (MyType, MyType) {}
-//~^ ERROR E0117
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 unsafe impl Send for &'static NotSync {}
-//~^ ERROR E0321
+//[old]~^ ERROR E0321
+//[re]~^^ ERROR E0321
 
 unsafe impl Send for [MyType] {}
-//~^ ERROR E0117
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 unsafe impl Send for &'static [NotSync] {}
-//~^ ERROR E0117
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 fn main() {
 }
diff --git a/src/test/ui/coherence/coherence-impls-sized.rs b/src/test/ui/coherence/coherence-impls-sized.rs
index 7af1344f95d..84ae2dd291b 100644
--- a/src/test/ui/coherence/coherence-impls-sized.rs
+++ b/src/test/ui/coherence/coherence-impls-sized.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 
 use std::marker::Copy;
@@ -11,26 +14,41 @@ struct MyType;
 struct NotSync;
 impl !Sync for NotSync {}
 
-impl Sized for TestE {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-
-impl Sized for MyType {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-
-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 E0322
-//~^ impl of 'Sized' not allowed
-//~| ERROR E0117
-
-impl Sized for &'static [NotSync] {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-//~| ERROR E0117
+impl Sized for TestE {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[re]~^^^ ERROR E0322
+
+impl Sized for MyType {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[re]~^^^ ERROR E0322
+
+impl Sized for (MyType, MyType) {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[old]~| ERROR E0117
+//[re]~^^^^ ERROR E0322
+//[re]~| ERROR E0117
+
+impl Sized for &'static NotSync {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[re]~^^^ ERROR E0322
+
+impl Sized for [MyType] {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[old]~| ERROR E0117
+//[re]~^^^^ ERROR E0322
+//[re]~| ERROR E0117
+
+impl Sized for &'static [NotSync] {}
+//[old]~^ ERROR E0322
+//[old]~| impl of 'Sized' not allowed
+//[old]~| ERROR E0117
+//[re]~^^^^ ERROR E0322
+//[re]~| ERROR E0117
 
 fn main() {
 }
diff --git a/src/test/ui/coherence/coherence-inherited-assoc-ty-cycle-err.rs b/src/test/ui/coherence/coherence-inherited-assoc-ty-cycle-err.rs
index 92bfeb1bf8a..5a6b8fb7316 100644
--- a/src/test/ui/coherence/coherence-inherited-assoc-ty-cycle-err.rs
+++ b/src/test/ui/coherence/coherence-inherited-assoc-ty-cycle-err.rs
@@ -4,10 +4,14 @@
 //
 // No we expect to run into a more user-friendly cycle error instead.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(specialization)]
 
 trait Trait<T> { type Assoc; }
-//~^ cycle detected
+//[old]~^ cycle detected
+//[re]~^^ ERROR E0391
 
 impl<T> Trait<T> for Vec<T> {
     type Assoc = ();
diff --git a/src/test/ui/coherence/coherence-lone-type-parameter.rs b/src/test/ui/coherence/coherence-lone-type-parameter.rs
index 7d52945b9dd..63b38bf1cc1 100644
--- a/src/test/ui/coherence/coherence-lone-type-parameter.rs
+++ b/src/test/ui/coherence/coherence-lone-type-parameter.rs
@@ -1,9 +1,14 @@
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote;
 
 impl<T> Remote for T { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[old]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re]~^^ ERROR E0210
+
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-negative-impls-safe.rs b/src/test/ui/coherence/coherence-negative-impls-safe.rs
index 050e47fd6a8..b6658d5bfa4 100644
--- a/src/test/ui/coherence/coherence-negative-impls-safe.rs
+++ b/src/test/ui/coherence/coherence-negative-impls-safe.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 
 use std::marker::Send;
@@ -5,6 +8,7 @@ use std::marker::Send;
 struct TestType;
 
 unsafe impl !Send for TestType {}
-//~^ ERROR negative impls cannot be unsafe
+//[old]~^ ERROR negative impls cannot be unsafe
+//[re]~^^ ERROR E0198
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-no-direct-lifetime-dispatch.rs b/src/test/ui/coherence/coherence-no-direct-lifetime-dispatch.rs
index 0a648c28ec6..9717f1ed051 100644
--- a/src/test/ui/coherence/coherence-no-direct-lifetime-dispatch.rs
+++ b/src/test/ui/coherence/coherence-no-direct-lifetime-dispatch.rs
@@ -1,8 +1,14 @@
 // Test that you cannot *directly* dispatch on lifetime requirements
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait MyTrait { fn foo() {} }
 
 impl<T> MyTrait for T {}
-impl<T: 'static> MyTrait for T {} //~ ERROR E0119
+impl<T: 'static> MyTrait for T {}
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-orphan.rs b/src/test/ui/coherence/coherence-orphan.rs
index ace3ebcc9e8..18f50e46021 100644
--- a/src/test/ui/coherence/coherence-orphan.rs
+++ b/src/test/ui/coherence/coherence-orphan.rs
@@ -1,5 +1,7 @@
 // aux-build:coherence_orphan_lib.rs
+// revisions: old re
 
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(optin_builtin_traits)]
 
 extern crate coherence_orphan_lib as lib;
@@ -9,13 +11,15 @@ use lib::TheTrait;
 struct TheType;
 
 impl TheTrait<usize> for isize { }
-//~^ ERROR E0117
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 impl TheTrait<TheType> for isize { }
 
 impl TheTrait<isize> for TheType { }
 
 impl !Send for Vec<isize> { }
-//~^ ERROR E0117
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-overlap-all-t-and-tuple.rs b/src/test/ui/coherence/coherence-overlap-all-t-and-tuple.rs
index 19aad6927ba..bf3ce89f70b 100644
--- a/src/test/ui/coherence/coherence-overlap-all-t-and-tuple.rs
+++ b/src/test/ui/coherence/coherence-overlap-all-t-and-tuple.rs
@@ -6,6 +6,10 @@
 //
 // Seems pretty basic, but then there was issue #24241. :)
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait From<U> {
     fn foo() {}
 }
@@ -13,7 +17,9 @@ trait From<U> {
 impl <T> From<T> for T {
 }
 
-impl <T11, U11> From<(U11,)> for (T11,) { //~ ERROR E0119
+impl <T11, U11> From<(U11,)> for (T11,) {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 }
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-overlap-downstream-inherent.rs b/src/test/ui/coherence/coherence-overlap-downstream-inherent.rs
index 5dea33e330b..ad54d247f91 100644
--- a/src/test/ui/coherence/coherence-overlap-downstream-inherent.rs
+++ b/src/test/ui/coherence/coherence-overlap-downstream-inherent.rs
@@ -1,17 +1,23 @@
 // Tests that we consider `T: Sugar + Fruit` to be ambiguous, even
 // though no impls are found.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 struct Sweet<X>(X);
 pub trait Sugar {}
 pub trait Fruit {}
 impl<T:Sugar> Sweet<T> { fn dummy(&self) { } }
-//~^ ERROR E0592
+//[old]~^ ERROR E0592
+//[re]~^^ ERROR E0592
 impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
 
 trait Bar<X> {}
 struct A<T, X>(T, X);
 impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
-//~^ ERROR E0592
+//[old]~^ ERROR E0592
+//[re]~^^ ERROR E0592
 impl<X> A<i32, X> { fn f(&self) {} }
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-overlap-downstream.rs b/src/test/ui/coherence/coherence-overlap-downstream.rs
index 738ec0e3d45..c6ced7b80fd 100644
--- a/src/test/ui/coherence/coherence-overlap-downstream.rs
+++ b/src/test/ui/coherence/coherence-overlap-downstream.rs
@@ -1,17 +1,23 @@
 // Tests that we consider `T: Sugar + Fruit` to be ambiguous, even
 // though no impls are found.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 pub trait Sugar {}
 pub trait Fruit {}
 pub trait Sweet {}
 impl<T:Sugar> Sweet for T { }
 impl<T:Fruit> Sweet for T { }
-//~^ ERROR E0119
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 pub trait Foo<X> {}
 pub trait Bar<X> {}
 impl<X, T> Foo<X> for T where T: Bar<X> {}
 impl<X> Foo<X> for i32 {}
-//~^ ERROR E0119
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.rs b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.rs
index a272e620fca..969366e29cc 100644
--- a/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.rs
+++ b/src/test/ui/coherence/coherence-overlap-issue-23516-inherent.rs
@@ -2,12 +2,17 @@
 // though we see no impl of `Sugar` for `Box`. Therefore, an overlap
 // error is reported for the following pair of impls (#23516).
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 pub trait Sugar {}
 
 struct Cake<X>(X);
 
 impl<T:Sugar> Cake<T> { fn dummy(&self) { } }
-//~^ ERROR E0592
+//[old]~^ ERROR E0592
+//[re]~^^ ERROR E0592
 impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-overlap-issue-23516.rs b/src/test/ui/coherence/coherence-overlap-issue-23516.rs
index 63e42e8f412..e3c15e149f8 100644
--- a/src/test/ui/coherence/coherence-overlap-issue-23516.rs
+++ b/src/test/ui/coherence/coherence-overlap-issue-23516.rs
@@ -2,10 +2,15 @@
 // though we see no impl of `Sugar` for `Box`. Therefore, an overlap
 // error is reported for the following pair of impls (#23516).
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 pub trait Sugar { fn dummy(&self) { } }
 pub trait Sweet { fn dummy(&self) { } }
 impl<T:Sugar> Sweet for T { }
 impl<U:Sugar> Sweet for Box<U> { }
-//~^ ERROR E0119
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-overlap-messages.rs b/src/test/ui/coherence/coherence-overlap-messages.rs
index e7ce40dc43a..e0e2e672e98 100644
--- a/src/test/ui/coherence/coherence-overlap-messages.rs
+++ b/src/test/ui/coherence/coherence-overlap-messages.rs
@@ -1,22 +1,37 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 trait Foo { fn foo() {} }
 
 impl<T> Foo for T {}
-impl<U> Foo for U {} //~ ERROR conflicting implementations of trait `Foo`:
+impl<U> Foo for U {}
+//[old]~^ ERROR conflicting implementations of trait `Foo`:
+//[re]~^^ ERROR E0119
+
 
 trait Bar { fn bar() {} }
 
 impl<T> Bar for (T, u8) {}
-impl<T> Bar for (u8, T) {} //~ ERROR conflicting implementations of trait `Bar` for type `(u8, u8)`:
+impl<T> Bar for (u8, T) {}
+//[old]~^ ERROR conflicting implementations of trait `Bar` for type `(u8, u8)`:
+//[re]~^^ ERROR E0119
 
 trait Baz<T> { fn baz() {} }
 
 impl<T> Baz<u8> for T {}
-impl<T> Baz<T> for u8 {} //~ ERROR conflicting implementations of trait `Baz<u8>` for type `u8`:
+impl<T> Baz<T> for u8 {}
+//[old]~^ ERROR conflicting implementations of trait `Baz<u8>` for type `u8`:
+//[re]~^^ ERROR E0119
 
 trait Quux<U, V> { fn quux() {} }
 
 impl<T, U, V> Quux<U, V> for T {}
-impl<T, U> Quux<U, U> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-impl<T, V> Quux<T, V> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
+impl<T, U> Quux<U, U> for T {}
+//[old]~^ ERROR conflicting implementations of trait `Quux<_, _>`:
+//[re]~^^ ERROR E0119
+impl<T, V> Quux<T, V> for T {}
+//[old]~^ ERROR conflicting implementations of trait `Quux<_, _>`:
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-overlap-upstream-inherent.rs b/src/test/ui/coherence/coherence-overlap-upstream-inherent.rs
index c5d59c6655a..92b619af076 100644
--- a/src/test/ui/coherence/coherence-overlap-upstream-inherent.rs
+++ b/src/test/ui/coherence/coherence-overlap-upstream-inherent.rs
@@ -2,6 +2,10 @@
 // though the upstream crate doesn't implement it for now.
 
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 
 extern crate coherence_lib;
 
@@ -9,7 +13,8 @@ use coherence_lib::Remote;
 
 struct A<X>(X);
 impl<T> A<T> where T: Remote { fn dummy(&self) { } }
-//~^ ERROR E0592
+//[old]~^ ERROR E0592
+//[re]~^^ ERROR E0592
 impl A<i16> { fn dummy(&self) { } }
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-overlap-upstream.rs b/src/test/ui/coherence/coherence-overlap-upstream.rs
index 47dd7a78fe8..62f675003f9 100644
--- a/src/test/ui/coherence/coherence-overlap-upstream.rs
+++ b/src/test/ui/coherence/coherence-overlap-upstream.rs
@@ -2,6 +2,10 @@
 // though the upstream crate doesn't implement it for now.
 
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 
 extern crate coherence_lib;
 
@@ -10,6 +14,7 @@ use coherence_lib::Remote;
 trait Foo {}
 impl<T> Foo for T where T: Remote {}
 impl Foo for i16 {}
-//~^ ERROR E0119
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-overlapping-pairs.rs b/src/test/ui/coherence/coherence-overlapping-pairs.rs
index 11b74ebacc5..de31a083940 100644
--- a/src/test/ui/coherence/coherence-overlapping-pairs.rs
+++ b/src/test/ui/coherence/coherence-overlapping-pairs.rs
@@ -1,4 +1,7 @@
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote;
@@ -6,6 +9,7 @@ use lib::Remote;
 struct Foo;
 
 impl<T> Remote for lib::Pair<T,Foo> { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[old]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-pair-covered-uncovered-1.rs b/src/test/ui/coherence/coherence-pair-covered-uncovered-1.rs
index f41e93aa994..91794b7999b 100644
--- a/src/test/ui/coherence/coherence-pair-covered-uncovered-1.rs
+++ b/src/test/ui/coherence/coherence-pair-covered-uncovered-1.rs
@@ -2,6 +2,10 @@
 // list of type parameters, not the self type.
 
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 
 extern crate coherence_lib as lib;
 use lib::{Remote1, Pair};
@@ -9,6 +13,7 @@ use lib::{Remote1, Pair};
 pub struct Local<T>(T);
 
 impl<T, U> Remote1<Pair<T, Local<U>>> for i32 { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[old]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-pair-covered-uncovered.rs b/src/test/ui/coherence/coherence-pair-covered-uncovered.rs
index 2400e9ec679..49a91412bec 100644
--- a/src/test/ui/coherence/coherence-pair-covered-uncovered.rs
+++ b/src/test/ui/coherence/coherence-pair-covered-uncovered.rs
@@ -1,4 +1,7 @@
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::{Remote, Pair};
@@ -6,6 +9,7 @@ use lib::{Remote, Pair};
 struct Local<T>(T);
 
 impl<T,U> Remote for Pair<T,Local<U>> { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[old]~^ ERROR type parameter `T` must be used as the type parameter for some local type
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-projection-conflict-orphan.rs b/src/test/ui/coherence/coherence-projection-conflict-orphan.rs
index 31325bea7c9..4f7fc71536b 100644
--- a/src/test/ui/coherence/coherence-projection-conflict-orphan.rs
+++ b/src/test/ui/coherence/coherence-projection-conflict-orphan.rs
@@ -1,3 +1,6 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![feature(rustc_attrs)]
 
 // Here we expect a coherence conflict because, even though `i32` does
@@ -13,6 +16,8 @@ pub trait Bar {
 
 impl Foo<i32> for i32 { }
 
-impl<A:Iterator> Foo<A::Item> for A { }  //~ ERROR E0119
+impl<A:Iterator> Foo<A::Item> for A { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-projection-conflict-ty-param.rs b/src/test/ui/coherence/coherence-projection-conflict-ty-param.rs
index 490c7e24f57..819947fa547 100644
--- a/src/test/ui/coherence/coherence-projection-conflict-ty-param.rs
+++ b/src/test/ui/coherence/coherence-projection-conflict-ty-param.rs
@@ -1,12 +1,18 @@
 // Coherence error results because we do not know whether `T: Foo<P>` or not
 // for the second impl.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::marker::PhantomData;
 
 pub trait Foo<P> { fn foo() {} }
 
 impl <P, T: Foo<P>> Foo<P> for Option<T> {}
 
-impl<T, U> Foo<T> for Option<U> { } //~ ERROR E0119
+impl<T, U> Foo<T> for Option<U> { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() {}
diff --git a/src/test/ui/coherence/coherence-projection-conflict.rs b/src/test/ui/coherence/coherence-projection-conflict.rs
index 34f078f9a8c..4086aeef8c0 100644
--- a/src/test/ui/coherence/coherence-projection-conflict.rs
+++ b/src/test/ui/coherence/coherence-projection-conflict.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::marker::PhantomData;
 
 pub trait Foo<P> { fn foo() {} }
@@ -8,7 +12,9 @@ pub trait Bar {
 
 impl Foo<i32> for i32 { }
 
-impl<A:Bar> Foo<A::Output> for A { } //~ ERROR E0119
+impl<A:Bar> Foo<A::Output> for A { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 impl Bar for i32 {
     type Output = i32;
diff --git a/src/test/ui/coherence/coherence-projection-ok-orphan.rs b/src/test/ui/coherence/coherence-projection-ok-orphan.rs
index be7fbfbf1b6..652b438feb1 100644
--- a/src/test/ui/coherence/coherence-projection-ok-orphan.rs
+++ b/src/test/ui/coherence/coherence-projection-ok-orphan.rs
@@ -1,5 +1,8 @@
 // compile-pass
 // skip-codegen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 // Here we do not get a coherence conflict because `Baz: Iterator`
 // does not hold and (due to the orphan rules), we can rely on that.
diff --git a/src/test/ui/coherence/coherence-projection-ok.rs b/src/test/ui/coherence/coherence-projection-ok.rs
index 74d44eb14b5..f759a9e1b45 100644
--- a/src/test/ui/coherence/coherence-projection-ok.rs
+++ b/src/test/ui/coherence/coherence-projection-ok.rs
@@ -1,5 +1,8 @@
 // compile-pass
 // skip-codegen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 pub trait Foo<P> {}
 
 pub trait Bar {
diff --git a/src/test/ui/coherence/coherence-tuple-conflict.rs b/src/test/ui/coherence/coherence-tuple-conflict.rs
index bece87a9dd9..130867b2242 100644
--- a/src/test/ui/coherence/coherence-tuple-conflict.rs
+++ b/src/test/ui/coherence/coherence-tuple-conflict.rs
@@ -1,3 +1,7 @@
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 use std::fmt::Debug;
 use std::default::Default;
 
@@ -12,7 +16,9 @@ impl<T> MyTrait for (T,T) {
     fn get(&self) -> usize { 0 }
 }
 
-impl<A,B> MyTrait for (A,B) { //~ ERROR E0119
+impl<A,B> MyTrait for (A,B) {
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
     fn get(&self) -> usize { self.dummy }
 }
 
diff --git a/src/test/ui/coherence/coherence-vec-local-2.rs b/src/test/ui/coherence/coherence-vec-local-2.rs
index b77b1f2e054..423543964c2 100644
--- a/src/test/ui/coherence/coherence-vec-local-2.rs
+++ b/src/test/ui/coherence/coherence-vec-local-2.rs
@@ -2,12 +2,17 @@
 // *non-fundamental* remote type like `Vec` is not considered local.
 
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote;
 
 struct Local<T>(T);
 
-impl<T> Remote for Vec<Local<T>> { } //~ ERROR E0210
+impl<T> Remote for Vec<Local<T>> { }
+//[old]~^ ERROR E0210
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence-vec-local.rs b/src/test/ui/coherence/coherence-vec-local.rs
index de12b43d485..351ddd2aa67 100644
--- a/src/test/ui/coherence/coherence-vec-local.rs
+++ b/src/test/ui/coherence/coherence-vec-local.rs
@@ -2,12 +2,17 @@
 // *non-fundamental* remote type like `Vec` is not considered local.
 
 // aux-build:coherence_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_lib as lib;
 use lib::Remote;
 
 struct Local;
 
-impl Remote for Vec<Local> { } //~ ERROR E0117
+impl Remote for Vec<Local> { }
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct.rs b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct.rs
index 205f5fd1c57..a0303142622 100644
--- a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct.rs
+++ b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct.rs
@@ -4,6 +4,9 @@
 // aux-build:coherence_copy_like_lib.rs
 // compile-pass
 // skip-codgen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
diff --git a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_ref.rs b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_ref.rs
index ac62310fab7..bd8317e2246 100644
--- a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_ref.rs
+++ b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_ref.rs
@@ -4,6 +4,9 @@
 // aux-build:coherence_copy_like_lib.rs
 // compile-pass
 // skip-codegen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
diff --git a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_tuple.rs b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_tuple.rs
index a3a851f606f..2a61042c6a0 100644
--- a/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_tuple.rs
+++ b/src/test/ui/coherence/coherence_copy_like_err_fundamental_struct_tuple.rs
@@ -2,7 +2,9 @@
 // `MyType: !MyTrait` along with other "fundamental" wrappers.
 
 // aux-build:coherence_copy_like_lib.rs
+// revisions: old re
 
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 
 extern crate coherence_copy_like_lib as lib;
@@ -14,7 +16,9 @@ trait MyTrait { fn foo() {} }
 impl<T: lib::MyCopy> MyTrait for T { }
 
 // Tuples are not fundamental.
-impl MyTrait for lib::MyFundamentalStruct<(MyType,)> { } //~ ERROR E0119
+impl MyTrait for lib::MyFundamentalStruct<(MyType,)> { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_copy_like_err_struct.rs b/src/test/ui/coherence/coherence_copy_like_err_struct.rs
index f8c01b4e89e..38fc2e662d7 100644
--- a/src/test/ui/coherence/coherence_copy_like_err_struct.rs
+++ b/src/test/ui/coherence/coherence_copy_like_err_struct.rs
@@ -1,4 +1,7 @@
 // aux-build:coherence_copy_like_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 // Test that we are able to introduce a negative constraint that
 // `MyType: !MyTrait` along with other "fundamental" wrappers.
@@ -16,6 +19,8 @@ impl<T: lib::MyCopy> MyTrait for T { }
 //     MyStruct<MyType>: !MyTrait
 //
 // which we cannot approve.
-impl MyTrait for lib::MyStruct<MyType> { } //~ ERROR E0119
+impl MyTrait for lib::MyStruct<MyType> { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_copy_like_err_tuple.rs b/src/test/ui/coherence/coherence_copy_like_err_tuple.rs
index 791ea1640f9..7234bed1ba0 100644
--- a/src/test/ui/coherence/coherence_copy_like_err_tuple.rs
+++ b/src/test/ui/coherence/coherence_copy_like_err_tuple.rs
@@ -2,6 +2,9 @@
 // `MyType: !MyTrait` along with other "fundamental" wrappers.
 
 // aux-build:coherence_copy_like_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 extern crate coherence_copy_like_lib as lib;
 
@@ -15,6 +18,8 @@ impl<T: lib::MyCopy> MyTrait for T { }
 //     (MyType,): !MyTrait
 //
 // which we cannot approve.
-impl MyTrait for (MyType,) { } //~ ERROR E0119
+impl MyTrait for (MyType,) { }
+//[old]~^ ERROR E0119
+//[re]~^^ ERROR E0119
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_inherent.rs b/src/test/ui/coherence/coherence_inherent.rs
index f77f84bbb0c..f0d3682adb8 100644
--- a/src/test/ui/coherence/coherence_inherent.rs
+++ b/src/test/ui/coherence/coherence_inherent.rs
@@ -1,6 +1,10 @@
 // Tests that methods that implement a trait cannot be invoked
 // unless the trait is imported.
 
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
+
 mod Lib {
     pub trait TheTrait {
         fn the_fn(&self);
@@ -28,7 +32,9 @@ mod NoImport {
     use Lib::TheStruct;
 
     fn call_the_fn(s: &TheStruct) {
-        s.the_fn(); //~ ERROR no method named `the_fn` found
+        s.the_fn();
+        //[old]~^ ERROR no method named `the_fn` found
+        //[re]~^^ ERROR E0599
     }
 }
 
diff --git a/src/test/ui/coherence/coherence_inherent_cc.rs b/src/test/ui/coherence/coherence_inherent_cc.rs
index 7ab10b2aa66..2c980d839b9 100644
--- a/src/test/ui/coherence/coherence_inherent_cc.rs
+++ b/src/test/ui/coherence/coherence_inherent_cc.rs
@@ -1,4 +1,7 @@
 // aux-build:coherence_inherent_cc_lib.rs
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 
 // Tests that methods that implement a trait cannot be invoked
 // unless the trait is imported.
@@ -20,7 +23,9 @@ mod NoImport {
     use coherence_inherent_cc_lib::TheStruct;
 
     fn call_the_fn(s: &TheStruct) {
-        s.the_fn(); //~ ERROR no method named `the_fn` found
+        s.the_fn();
+        //[old]~^ ERROR no method named `the_fn` found
+        //[re]~^^ ERROR E0599
     }
 }
 
diff --git a/src/test/ui/coherence/coherence_local.rs b/src/test/ui/coherence/coherence_local.rs
index dc71253e3f7..cac45b0b9ed 100644
--- a/src/test/ui/coherence/coherence_local.rs
+++ b/src/test/ui/coherence/coherence_local.rs
@@ -4,6 +4,9 @@
 // aux-build:coherence_copy_like_lib.rs
 // compile-pass
 // skip-codegen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
diff --git a/src/test/ui/coherence/coherence_local_err_struct.rs b/src/test/ui/coherence/coherence_local_err_struct.rs
index b94fc6c6abc..d6faaf2977a 100644
--- a/src/test/ui/coherence/coherence_local_err_struct.rs
+++ b/src/test/ui/coherence/coherence_local_err_struct.rs
@@ -2,8 +2,9 @@
 // `MyType: !MyTrait` along with other "fundamental" wrappers.
 
 // aux-build:coherence_copy_like_lib.rs
+// revisions: old re
 
-
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
@@ -13,7 +14,9 @@ struct MyType { x: i32 }
 // These are all legal because they are all fundamental types:
 
 // MyStruct is not fundamental.
-impl lib::MyCopy for lib::MyStruct<MyType> { } //~ ERROR E0117
+impl lib::MyCopy for lib::MyStruct<MyType> { }
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_local_err_tuple.rs b/src/test/ui/coherence/coherence_local_err_tuple.rs
index 2e95a0f663d..2685b2df8cb 100644
--- a/src/test/ui/coherence/coherence_local_err_tuple.rs
+++ b/src/test/ui/coherence/coherence_local_err_tuple.rs
@@ -2,8 +2,9 @@
 // `MyType: !MyTrait` along with other "fundamental" wrappers.
 
 // aux-build:coherence_copy_like_lib.rs
+// revisions: old re
 
-
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
@@ -13,7 +14,9 @@ struct MyType { x: i32 }
 // These are all legal because they are all fundamental types:
 
 // Tuples are not fundamental, so this is not a local impl.
-impl lib::MyCopy for (MyType,) { } //~ ERROR E0117
+impl lib::MyCopy for (MyType,) { }
+//[old]~^ ERROR E0117
+//[re]~^^ ERROR E0117
 
 
 fn main() { }
diff --git a/src/test/ui/coherence/coherence_local_ref.rs b/src/test/ui/coherence/coherence_local_ref.rs
index f2978bcd960..a52510b8ea9 100644
--- a/src/test/ui/coherence/coherence_local_ref.rs
+++ b/src/test/ui/coherence/coherence_local_ref.rs
@@ -4,6 +4,9 @@
 // aux-build:coherence_copy_like_lib.rs
 // compile-pass
 // skip-codegen
+// revisions: old re
+
+#![cfg_attr(re, feature(re_rebalance_coherence))]
 #![allow(dead_code)]
 
 extern crate coherence_copy_like_lib as lib;
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_copy_like_lib.rs b/src/test/ui/re_rebalance_coherence/auxiliary/coherence_copy_like_lib.rs
deleted file mode 100644
index d3d389c6a8b..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_copy_like_lib.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![crate_type = "rlib"]
-#![feature(fundamental)]
-
-pub trait MyCopy { }
-impl MyCopy for i32 { }
-
-pub struct MyStruct<T>(T);
-
-#[fundamental]
-pub struct MyFundamentalStruct<T>(T);
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_inherent_cc_lib.rs b/src/test/ui/re_rebalance_coherence/auxiliary/coherence_inherent_cc_lib.rs
deleted file mode 100644
index 0458636a401..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_inherent_cc_lib.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// See coherence_inherent_cc.rs
-
-pub trait TheTrait {
-    fn the_fn(&self);
-}
-
-pub struct TheStruct;
-
-impl TheTrait for TheStruct {
-    fn the_fn(&self) {}
-}
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_lib.rs b/src/test/ui/re_rebalance_coherence/auxiliary/coherence_lib.rs
deleted file mode 100644
index daa123849e4..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_lib.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![crate_type="lib"]
-
-pub trait Remote {
-    fn foo(&self) { }
-}
-
-pub trait Remote1<T> {
-    fn foo(&self, t: T) { }
-}
-
-pub trait Remote2<T, U> {
-    fn foo(&self, t: T, u: U) { }
-}
-
-pub struct Pair<T,U>(T,U);
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_orphan_lib.rs b/src/test/ui/re_rebalance_coherence/auxiliary/coherence_orphan_lib.rs
deleted file mode 100644
index b22d12300c7..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/coherence_orphan_lib.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-pub trait TheTrait<T> {
-    fn the_fn(&self);
-}
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/go_trait.rs b/src/test/ui/re_rebalance_coherence/auxiliary/go_trait.rs
deleted file mode 100644
index 044bb606b40..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/go_trait.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(specialization)]
-
-// Common code used for tests that model the Fn/FnMut/FnOnce hierarchy.
-
-pub trait Go {
-    fn go(&self, arg: isize);
-}
-
-pub fn go<G:Go>(this: &G, arg: isize) {
-    this.go(arg)
-}
-
-pub trait GoMut {
-    fn go_mut(&mut self, arg: isize);
-}
-
-pub fn go_mut<G:GoMut>(this: &mut G, arg: isize) {
-    this.go_mut(arg)
-}
-
-pub trait GoOnce {
-    fn go_once(self, arg: isize);
-}
-
-pub fn go_once<G:GoOnce>(this: G, arg: isize) {
-    this.go_once(arg)
-}
-
-impl<G> GoMut for G
-    where G : Go
-{
-    default fn go_mut(&mut self, arg: isize) {
-        go(&*self, arg)
-    }
-}
-
-impl<G> GoOnce for G
-    where G : GoMut
-{
-    default fn go_once(mut self, arg: isize) {
-        go_mut(&mut self, arg)
-    }
-}
diff --git a/src/test/ui/re_rebalance_coherence/auxiliary/trait_impl_conflict.rs b/src/test/ui/re_rebalance_coherence/auxiliary/trait_impl_conflict.rs
deleted file mode 100644
index 3190ce430ad..00000000000
--- a/src/test/ui/re_rebalance_coherence/auxiliary/trait_impl_conflict.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-pub trait Foo {
-    fn foo() {}
-}
-
-impl Foo for isize {
-}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-all-remote.rs b/src/test/ui/re_rebalance_coherence/coherence-all-remote.rs
deleted file mode 100644
index 0769518b36b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-all-remote.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// aux-build:coherence_lib.rs
-
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_lib as lib;
-use lib::Remote1;
-
-impl<T> Remote1<T> for isize { }
-//~^ ERROR E0210
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-all-remote.stderr b/src/test/ui/re_rebalance_coherence/coherence-all-remote.stderr
deleted file mode 100644
index 509cee34b23..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-all-remote.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-all-remote.rs:18:1
-   |
-LL | impl<T> Remote1<T> for isize { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
-   |
-   = note: only traits defined in the current crate can be implemented for a type parameter
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0210`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-bigint-param.rs b/src/test/ui/re_rebalance_coherence/coherence-bigint-param.rs
deleted file mode 100644
index 712fe9bdb4c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-bigint-param.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::Remote1;
-
-pub struct BigInt;
-
-impl<T> Remote1<BigInt> for T { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-bigint-param.stderr b/src/test/ui/re_rebalance_coherence/coherence-bigint-param.stderr
deleted file mode 100644
index c2f6a15e8e3..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-bigint-param.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-bigint-param.rs:20:1
-   |
-LL | impl<T> Remote1<BigInt> for T { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
-   |
-   = note: only traits defined in the current crate can be implemented for a type parameter
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0210`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.rs
deleted file mode 100644
index da0221c3e0a..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::fmt::Debug;
-use std::default::Default;
-
-// Test that two blanket impls conflict (at least without negative
-// bounds).  After all, some other crate could implement Even or Odd
-// for the same type (though this crate doesn't).
-
-trait MyTrait {
-    fn get(&self) -> usize;
-}
-
-trait Even { }
-
-trait Odd { }
-
-impl Even for isize { }
-
-impl Odd for usize { }
-
-impl<T:Even> MyTrait for T {
-    fn get(&self) -> usize { 0 }
-}
-
-impl<T:Odd> MyTrait for T { //~ ERROR E0119
-    fn get(&self) -> usize { 0 }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.stderr
deleted file mode 100644
index 8d5d4787780..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-implemented.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait`:
-  --> $DIR/coherence-blanket-conflicts-with-blanket-implemented.rs:36:1
-   |
-LL | impl<T:Even> MyTrait for T {
-   | -------------------------- first implementation here
-...
-LL | impl<T:Odd> MyTrait for T { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs
deleted file mode 100644
index 5e407588e2a..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::fmt::Debug;
-use std::default::Default;
-
-// Test that two blanket impls conflict (at least without negative
-// bounds).  After all, some other crate could implement Even or Odd
-// for the same type (though this crate doesn't implement them at all).
-
-trait MyTrait {
-    fn get(&self) -> usize;
-}
-
-trait Even {}
-
-trait Odd {}
-
-impl<T:Even> MyTrait for T {
-    fn get(&self) -> usize { 0 }
-}
-
-impl<T:Odd> MyTrait for T { //~ ERROR E0119
-    fn get(&self) -> usize { 0 }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.stderr
deleted file mode 100644
index 6e7df5e6ed3..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-blanket-unimplemented.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait`:
-  --> $DIR/coherence-blanket-conflicts-with-blanket-unimplemented.rs:32:1
-   |
-LL | impl<T:Even> MyTrait for T {
-   | -------------------------- first implementation here
-...
-LL | impl<T:Odd> MyTrait for T { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs
deleted file mode 100644
index 9d1caf92922..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:go_trait.rs
-
-extern crate go_trait;
-
-use go_trait::{Go,GoMut};
-use std::fmt::Debug;
-use std::default::Default;
-
-struct MyThingy;
-
-impl Go for MyThingy {
-    fn go(&self, arg: isize) { }
-}
-
-impl GoMut for MyThingy { //~ ERROR conflicting implementations
-    fn go_mut(&mut self, arg: isize) { }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.stderr
deleted file mode 100644
index 30656fa41b4..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-cross-crate.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0119]: conflicting implementations of trait `go_trait::GoMut` for type `MyThingy`:
-  --> $DIR/coherence-blanket-conflicts-with-specific-cross-crate.rs:27:1
-   |
-LL | impl GoMut for MyThingy { //~ ERROR conflicting implementations
-   | ^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `go_trait`:
-           - impl<G> go_trait::GoMut for G
-             where G: go_trait::Go;
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs
deleted file mode 100644
index f866465bd08..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::fmt::Debug;
-use std::default::Default;
-
-// Test that a blank impl for all T conflicts with an impl for some
-// specific T, even when there are multiple type parameters involved.
-
-trait MyTrait<T> {
-    fn get(&self) -> T;
-}
-
-impl<T> MyTrait<T> for T {
-    fn get(&self) -> T {
-        panic!()
-    }
-}
-
-#[derive(Clone)]
-struct MyType {
-    dummy: usize
-}
-
-impl MyTrait<MyType> for MyType { //~ ERROR E0119
-    fn get(&self) -> usize { (*self).clone() }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.stderr
deleted file mode 100644
index f68e1fd94f0..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-multidispatch.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait<MyType>` for type `MyType`:
-  --> $DIR/coherence-blanket-conflicts-with-specific-multidispatch.rs:34:1
-   |
-LL | impl<T> MyTrait<T> for T {
-   | ------------------------ first implementation here
-...
-LL | impl MyTrait<MyType> for MyType { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MyType`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.rs
deleted file mode 100644
index 74b458b838e..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that a blank impl for all T:PartialEq conflicts with an impl for some
-// specific T when T:PartialEq.
-
-trait OtherTrait {
-    fn noop(&self);
-}
-
-trait MyTrait {
-    fn get(&self) -> usize;
-}
-
-impl<T:OtherTrait> MyTrait for T {
-    fn get(&self) -> usize { 0 }
-}
-
-struct MyType {
-    dummy: usize
-}
-
-impl MyTrait for MyType { //~ ERROR E0119
-    fn get(&self) -> usize { self.dummy }
-}
-
-impl OtherTrait for MyType {
-    fn noop(&self) { }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.stderr
deleted file mode 100644
index bafeadcfcbe..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific-trait.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `MyType`:
-  --> $DIR/coherence-blanket-conflicts-with-specific-trait.rs:32:1
-   |
-LL | impl<T:OtherTrait> MyTrait for T {
-   | -------------------------------- first implementation here
-...
-LL | impl MyTrait for MyType { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MyType`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.rs b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.rs
deleted file mode 100644
index 51de0e33034..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::fmt::Debug;
-use std::default::Default;
-
-// Test that a blank impl for all T conflicts with an impl for some
-// specific T.
-
-trait MyTrait {
-    fn get(&self) -> usize;
-}
-
-impl<T> MyTrait for T {
-    fn get(&self) -> usize { 0 }
-}
-
-struct MyType {
-    dummy: usize
-}
-
-impl MyTrait for MyType { //~ ERROR E0119
-    fn get(&self) -> usize { self.dummy }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.stderr b/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.stderr
deleted file mode 100644
index efc32d12364..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-blanket-conflicts-with-specific.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `MyType`:
-  --> $DIR/coherence-blanket-conflicts-with-specific.rs:31:1
-   |
-LL | impl<T> MyTrait for T {
-   | --------------------- first implementation here
-...
-LL | impl MyTrait for MyType { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `MyType`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.rs b/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.rs
deleted file mode 100644
index c2db97c68e8..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(overlapping_marker_traits)]
-#![feature(re_rebalance_coherence)]
-
-trait MyTrait {}
-
-struct TestType<T>(::std::marker::PhantomData<T>);
-
-unsafe impl<T: MyTrait+'static> Send for TestType<T> {}
-
-impl<T: MyTrait> !Send for TestType<T> {}
-//~^ ERROR conflicting implementations of trait `std::marker::Send`
-
-unsafe impl<T:'static> Send for TestType<T> {}
-
-impl !Send for TestType<i32> {}
-//~^ ERROR conflicting implementations of trait `std::marker::Send`
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.stderr b/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.stderr
deleted file mode 100644
index 7555e9996cf..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-conflicting-negative-trait-impl.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0119]: conflicting implementations of trait `std::marker::Send` for type `TestType<_>`:
-  --> $DIR/coherence-conflicting-negative-trait-impl.rs:21:1
-   |
-LL | unsafe impl<T: MyTrait+'static> Send for TestType<T> {}
-   | ---------------------------------------------------- first implementation here
-LL | 
-LL | impl<T: MyTrait> !Send for TestType<T> {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `TestType<_>`
-
-error[E0119]: conflicting implementations of trait `std::marker::Send` for type `TestType<i32>`:
-  --> $DIR/coherence-conflicting-negative-trait-impl.rs:26:1
-   |
-LL | unsafe impl<T:'static> Send for TestType<T> {}
-   | ------------------------------------------- first implementation here
-LL | 
-LL | impl !Send for TestType<i32> {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `TestType<i32>`
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-cow.a.stderr b/src/test/ui/re_rebalance_coherence/coherence-cow.a.stderr
deleted file mode 100644
index 09cc9801c14..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cow.a.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-cow.rs:28:1
-   |
-LL | impl<T> Remote for Pair<T,Cover<T>> { } //[a]~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-cow.b.stderr b/src/test/ui/re_rebalance_coherence/coherence-cow.b.stderr
deleted file mode 100644
index 7bb8378ee4b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cow.b.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-cow.rs:31:1
-   |
-LL | impl<T> Remote for Pair<Cover<T>,T> { } //[b]~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-cow.c.stderr b/src/test/ui/re_rebalance_coherence/coherence-cow.c.stderr
deleted file mode 100644
index 6dbf0a44f02..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cow.c.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-cow.rs:34:1
-   |
-LL | impl<T,U> Remote for Pair<Cover<T>,U> { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-cow.rs b/src/test/ui/re_rebalance_coherence/coherence-cow.rs
deleted file mode 100644
index da69d56a25a..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cow.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// revisions: a b c
-
-// aux-build:coherence_lib.rs
-
-// Test that the `Pair` type reports an error if it contains type
-// parameters, even when they are covered by local types. This test
-// was originally intended to test the opposite, but the rules changed
-// with RFC 1023 and this became illegal.
-
-extern crate coherence_lib as lib;
-use lib::{Remote,Pair};
-
-pub struct Cover<T>(T);
-
-#[cfg(a)]
-impl<T> Remote for Pair<T,Cover<T>> { } //[a]~ ERROR E0117
-
-#[cfg(b)]
-impl<T> Remote for Pair<Cover<T>,T> { } //[b]~ ERROR E0117
-
-#[cfg(c)]
-impl<T,U> Remote for Pair<Cover<T>,U> { }
-//[c]~^ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.rs b/src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.rs
deleted file mode 100644
index 02624c70dc9..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// The error here is strictly due to orphan rules; the impl here
-// generalizes the one upstream
-
-// aux-build:trait_impl_conflict.rs
-extern crate trait_impl_conflict;
-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/ui/re_rebalance_coherence/coherence-cross-crate-conflict.stderr b/src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.stderr
deleted file mode 100644
index cc10ac8f025..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-cross-crate-conflict.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0119]: conflicting implementations of trait `trait_impl_conflict::Foo` for type `isize`:
-  --> $DIR/coherence-cross-crate-conflict.rs:20:1
-   |
-LL | impl<A> Foo for A {
-   | ^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `trait_impl_conflict`:
-           - impl trait_impl_conflict::Foo for isize;
-
-error[E0210]: type parameter `A` must be used as the type parameter for some local type (e.g., `MyStruct<A>`)
-  --> $DIR/coherence-cross-crate-conflict.rs:20:1
-   |
-LL | impl<A> Foo for A {
-   | ^^^^^^^^^^^^^^^^^ type parameter `A` must be used as the type parameter for some local type
-   |
-   = note: only traits defined in the current crate can be implemented for a type parameter
-
-error: aborting due to 2 previous errors
-
-Some errors occurred: E0119, E0210.
-For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.rs b/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.rs
deleted file mode 100644
index 86dd0e4f74f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(re_rebalance_coherence)]
-
-auto trait MySafeTrait {}
-
-struct Foo;
-
-unsafe impl MySafeTrait for Foo {}
-//~^ ERROR implementing the trait `MySafeTrait` is not unsafe
-
-unsafe auto trait MyUnsafeTrait {}
-
-impl MyUnsafeTrait for Foo {}
-//~^ ERROR the trait `MyUnsafeTrait` requires an `unsafe impl` declaration
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.stderr b/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.stderr
deleted file mode 100644
index 6c3d79cf53c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-default-trait-impl.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-error[E0199]: implementing the trait `MySafeTrait` is not unsafe
-  --> $DIR/coherence-default-trait-impl.rs:18:1
-   |
-LL | unsafe impl MySafeTrait for Foo {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0200]: the trait `MyUnsafeTrait` requires an `unsafe impl` declaration
-  --> $DIR/coherence-default-trait-impl.rs:23:1
-   |
-LL | impl MyUnsafeTrait for Foo {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors
-
-Some errors occurred: E0199, E0200.
-For more information about an error, try `rustc --explain E0199`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-error-suppression.rs b/src/test/ui/re_rebalance_coherence/coherence-error-suppression.rs
deleted file mode 100644
index 24df1a1ee01..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-error-suppression.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// check that error types in coherence do not cause error cascades.
-
-trait Foo {}
-
-impl Foo for i8 {}
-impl Foo for i16 {}
-impl Foo for i32 {}
-impl Foo for i64 {}
-impl Foo for DoesNotExist {} //~ ERROR cannot find type `DoesNotExist` in this scope
-impl Foo for u8 {}
-impl Foo for u16 {}
-impl Foo for u32 {}
-impl Foo for u64 {}
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-error-suppression.stderr b/src/test/ui/re_rebalance_coherence/coherence-error-suppression.stderr
deleted file mode 100644
index 97ed46c71bd..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-error-suppression.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0412]: cannot find type `DoesNotExist` in this scope
-  --> $DIR/coherence-error-suppression.rs:21:14
-   |
-LL | impl Foo for DoesNotExist {} //~ ERROR cannot find type `DoesNotExist` in this scope
-   |              ^^^^^^^^^^^^ not found in this scope
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0412`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.rs b/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.rs
deleted file mode 100644
index 9e9a00af903..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that we give suitable error messages when the user attempts to
-// impl a trait `Trait` for its own object type.
-
-// If the trait is not object-safe, we give a more tailored message
-// because we're such schnuckels:
-trait NotObjectSafe { fn eq(&self, other: Self); }
-impl NotObjectSafe for NotObjectSafe { } //~ ERROR E0038
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.stderr b/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.stderr
deleted file mode 100644
index 0f4f33e4eb9..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait-object-safe.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0038]: the trait `NotObjectSafe` cannot be made into an object
-  --> $DIR/coherence-impl-trait-for-trait-object-safe.rs:19:6
-   |
-LL | impl NotObjectSafe for NotObjectSafe { } //~ ERROR E0038
-   |      ^^^^^^^^^^^^^ the trait `NotObjectSafe` cannot be made into an object
-   |
-   = note: method `eq` references the `Self` type in its arguments or return type
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0038`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.rs b/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.rs
deleted file mode 100644
index 0ed88058f1f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that we give suitable error messages when the user attempts to
-// impl a trait `Trait` for its own object type.
-
-trait Foo { fn dummy(&self) { } }
-trait Bar: Foo { }
-trait Baz: Bar { }
-
-// Supertraits of Baz are not legal:
-impl Foo for Baz { }   //~ ERROR E0371
-impl Bar for Baz { }   //~ ERROR E0371
-impl Baz for Baz { }   //~ ERROR E0371
-
-// But other random traits are:
-trait Other { }
-impl Other for Baz { } // OK, Other not a supertrait of Baz
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.stderr b/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.stderr
deleted file mode 100644
index d529e86f8fc..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impl-trait-for-trait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0371]: the object type `(dyn Baz + 'static)` automatically implements the trait `Foo`
-  --> $DIR/coherence-impl-trait-for-trait.rs:21:1
-   |
-LL | impl Foo for Baz { }   //~ ERROR E0371
-   | ^^^^^^^^^^^^^^^^ `(dyn Baz + 'static)` automatically implements trait `Foo`
-
-error[E0371]: the object type `(dyn Baz + 'static)` automatically implements the trait `Bar`
-  --> $DIR/coherence-impl-trait-for-trait.rs:22:1
-   |
-LL | impl Bar for Baz { }   //~ ERROR E0371
-   | ^^^^^^^^^^^^^^^^ `(dyn Baz + 'static)` automatically implements trait `Bar`
-
-error[E0371]: the object type `(dyn Baz + 'static)` automatically implements the trait `Baz`
-  --> $DIR/coherence-impl-trait-for-trait.rs:23:1
-   |
-LL | impl Baz for Baz { }   //~ ERROR E0371
-   | ^^^^^^^^^^^^^^^^ `(dyn Baz + 'static)` automatically implements trait `Baz`
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0371`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-copy.rs b/src/test/ui/re_rebalance_coherence/coherence-impls-copy.rs
deleted file mode 100644
index 9f58d13efc2..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-copy.rs
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(re_rebalance_coherence)]
-
-use std::marker::Copy;
-
-impl Copy for i32 {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `i32`:
-//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-
-enum TestE {
-  A
-}
-
-struct MyType;
-
-struct NotSync;
-impl !Sync for NotSync {}
-
-impl Copy for TestE {}
-impl Clone for TestE { fn clone(&self) -> Self { *self } }
-
-impl Copy for MyType {}
-
-impl Copy for &'static mut MyType {}
-//~^ ERROR the trait `Copy` may not be implemented for this type
-impl Clone for MyType { fn clone(&self) -> Self { *self } }
-
-impl Copy for (MyType, MyType) {}
-//~^ 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
-
-impl Copy for &'static NotSync {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&NotSync`:
-
-impl Copy for [MyType] {}
-//~^ 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
-
-impl Copy for &'static [NotSync] {}
-//~^ ERROR conflicting implementations of trait `std::marker::Copy` for type `&[NotSync]`:
-//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
-
-fn main() {
-}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-copy.stderr b/src/test/ui/re_rebalance_coherence/coherence-impls-copy.stderr
deleted file mode 100644
index 80e2d203aaa..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-copy.stderr
+++ /dev/null
@@ -1,87 +0,0 @@
-error[E0119]: conflicting implementations of trait `std::marker::Copy` for type `i32`:
-  --> $DIR/coherence-impls-copy.rs:16:1
-   |
-LL | impl Copy for i32 {}
-   | ^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `core`:
-           - impl std::marker::Copy for i32;
-
-error[E0119]: conflicting implementations of trait `std::marker::Copy` for type `&NotSync`:
-  --> $DIR/coherence-impls-copy.rs:42:1
-   |
-LL | impl Copy for &'static NotSync {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `core`:
-           - impl<T> std::marker::Copy for &T
-             where T: ?Sized;
-
-error[E0119]: conflicting implementations of trait `std::marker::Copy` for type `&[NotSync]`:
-  --> $DIR/coherence-impls-copy.rs:49:1
-   |
-LL | impl Copy for &'static [NotSync] {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `core`:
-           - impl<T> std::marker::Copy for &T
-             where T: ?Sized;
-
-error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:34:15
-   |
-LL | impl Copy for &'static mut MyType {}
-   |               ^^^^^^^^^^^^^^^^^^^ type is not a structure or enumeration
-
-error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:38:15
-   |
-LL | impl Copy for (MyType, MyType) {}
-   |               ^^^^^^^^^^^^^^^^ type is not a structure or enumeration
-
-error[E0206]: the trait `Copy` may not be implemented for this type
-  --> $DIR/coherence-impls-copy.rs:45:15
-   |
-LL | impl Copy for [MyType] {}
-   |               ^^^^^^^^ type is not a structure or enumeration
-
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:16:1
-   |
-LL | impl Copy for i32 {}
-   | ^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:38:1
-   |
-LL | impl Copy for (MyType, MyType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:45:1
-   |
-LL | impl Copy for [MyType] {}
-   | ^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-copy.rs:49:1
-   |
-LL | impl Copy for &'static [NotSync] {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to 10 previous errors
-
-Some errors occurred: E0117, E0119, E0206.
-For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-send.rs b/src/test/ui/re_rebalance_coherence/coherence-impls-send.rs
deleted file mode 100644
index 11b92d5254c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-send.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(overlapping_marker_traits)]
-#![feature(re_rebalance_coherence)]
-
-use std::marker::Copy;
-
-enum TestE {
-  A
-}
-
-struct MyType;
-
-struct NotSync;
-impl !Sync for NotSync {}
-
-unsafe impl Send for TestE {}
-unsafe impl Send for MyType {}
-unsafe impl Send for (MyType, MyType) {}
-//~^ ERROR E0117
-
-unsafe impl Send for &'static NotSync {}
-//~^ ERROR E0321
-
-unsafe impl Send for [MyType] {}
-//~^ ERROR E0117
-
-unsafe impl Send for &'static [NotSync] {}
-//~^ ERROR E0117
-
-fn main() {
-}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-send.stderr b/src/test/ui/re_rebalance_coherence/coherence-impls-send.stderr
deleted file mode 100644
index 8f09deeeb93..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-send.stderr
+++ /dev/null
@@ -1,37 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-send.rs:28:1
-   |
-LL | unsafe impl Send for (MyType, MyType) {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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[E0321]: cross-crate traits with a default impl, like `std::marker::Send`, can only be implemented for a struct/enum type, not `&'static NotSync`
-  --> $DIR/coherence-impls-send.rs:31:1
-   |
-LL | unsafe impl Send for &'static NotSync {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't implement cross-crate trait with a default impl for non-struct/enum type
-
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-send.rs:34:1
-   |
-LL | unsafe impl Send for [MyType] {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-send.rs:37:1
-   |
-LL | unsafe impl Send for &'static [NotSync] {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to 4 previous errors
-
-Some errors occurred: E0117, E0321.
-For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-sized.rs b/src/test/ui/re_rebalance_coherence/coherence-impls-sized.rs
deleted file mode 100644
index 3f7970f34fc..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-sized.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(re_rebalance_coherence)]
-
-use std::marker::Copy;
-
-enum TestE {
-  A
-}
-
-struct MyType;
-
-struct NotSync;
-impl !Sync for NotSync {}
-
-impl Sized for TestE {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-
-impl Sized for MyType {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-
-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 E0322
-//~^ impl of 'Sized' not allowed
-//~| ERROR E0117
-
-impl Sized for &'static [NotSync] {} //~ ERROR E0322
-//~^ impl of 'Sized' not allowed
-//~| ERROR E0117
-
-fn main() {
-}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-impls-sized.stderr b/src/test/ui/re_rebalance_coherence/coherence-impls-sized.stderr
deleted file mode 100644
index 92b165bdc3b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-impls-sized.stderr
+++ /dev/null
@@ -1,67 +0,0 @@
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:25:1
-   |
-LL | impl Sized for TestE {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:28:1
-   |
-LL | impl Sized for MyType {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:31:1
-   |
-LL | impl Sized for (MyType, MyType) {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:35:1
-   |
-LL | impl Sized for &'static NotSync {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:38:1
-   |
-LL | impl Sized for [MyType] {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0322]: explicit impls for the `Sized` trait are not permitted
-  --> $DIR/coherence-impls-sized.rs:42:1
-   |
-LL | impl Sized for &'static [NotSync] {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of 'Sized' not allowed
-
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-sized.rs:31:1
-   |
-LL | impl Sized for (MyType, MyType) {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-sized.rs:38:1
-   |
-LL | impl Sized for [MyType] {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-impls-sized.rs:42:1
-   |
-LL | impl Sized for &'static [NotSync] {} //~ ERROR E0322
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to 9 previous errors
-
-Some errors occurred: E0117, E0322.
-For more information about an error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.rs b/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.rs
deleted file mode 100644
index a2cfb11fdc2..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Formerly this ICEd with the following message:
-// Tried to project an inherited associated type during coherence checking,
-// which is currently not supported.
-//
-// No we expect to run into a more user-friendly cycle error instead.
-
-#![feature(specialization)]
-#![feature(re_rebalance_coherence)]
-
-trait Trait<T> { type Assoc; }
-//~^ cycle detected
-
-impl<T> Trait<T> for Vec<T> {
-    type Assoc = ();
-}
-
-impl Trait<u8> for Vec<u8> {}
-
-impl<T> Trait<T> for String {
-    type Assoc = ();
-}
-
-impl Trait<<Vec<u8> as Trait<u8>>::Assoc> for String {}
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.stderr b/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.stderr
deleted file mode 100644
index aca2d64b623..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-inherited-assoc-ty-cycle-err.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-error[E0391]: cycle detected when processing `Trait`
-  --> $DIR/coherence-inherited-assoc-ty-cycle-err.rs:20:1
-   |
-LL | trait Trait<T> { type Assoc; }
-   | ^^^^^^^^^^^^^^
-   |
-   = note: ...which again requires processing `Trait`, completing the cycle
-note: cycle used when coherence checking all impls of trait `Trait`
-  --> $DIR/coherence-inherited-assoc-ty-cycle-err.rs:20:1
-   |
-LL | trait Trait<T> { type Assoc; }
-   | ^^^^^^^^^^^^^^
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0391`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.rs b/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.rs
deleted file mode 100644
index 8d3551beb5f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::Remote;
-
-impl<T> Remote for T { }
-//~^ ERROR type parameter `T` must be used as the type parameter for some local type
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.stderr b/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.stderr
deleted file mode 100644
index 403ced3f287..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-lone-type-parameter.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
-  --> $DIR/coherence-lone-type-parameter.rs:18:1
-   |
-LL | impl<T> Remote for T { }
-   | ^^^^^^^^^^^^^^^^^^^^ type parameter `T` must be used as the type parameter for some local type
-   |
-   = note: only traits defined in the current crate can be implemented for a type parameter
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0210`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.rs b/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.rs
deleted file mode 100644
index 40f7ebfd250..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(optin_builtin_traits)]
-#![feature(re_rebalance_coherence)]
-
-use std::marker::Send;
-
-struct TestType;
-
-unsafe impl !Send for TestType {}
-//~^ ERROR negative impls cannot be unsafe
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.stderr b/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.stderr
deleted file mode 100644
index 70a879efa27..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-negative-impls-safe.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0198]: negative impls cannot be unsafe
-  --> $DIR/coherence-negative-impls-safe.rs:18:1
-   |
-LL | unsafe impl !Send for TestType {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0198`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.rs b/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.rs
deleted file mode 100644
index 838bc71d3af..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that you cannot *directly* dispatch on lifetime requirements
-
-trait MyTrait { fn foo() {} }
-
-impl<T> MyTrait for T {}
-impl<T: 'static> MyTrait for T {} //~ ERROR E0119
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.stderr b/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.stderr
deleted file mode 100644
index aa6427ba24f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-no-direct-lifetime-dispatch.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait`:
-  --> $DIR/coherence-no-direct-lifetime-dispatch.rs:18:1
-   |
-LL | impl<T> MyTrait for T {}
-   | --------------------- first implementation here
-LL | impl<T: 'static> MyTrait for T {} //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-orphan.rs b/src/test/ui/re_rebalance_coherence/coherence-orphan.rs
deleted file mode 100644
index dbe26a8898d..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-orphan.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// aux-build:coherence_orphan_lib.rs
-
-#![feature(optin_builtin_traits)]
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_orphan_lib as lib;
-
-use lib::TheTrait;
-
-struct TheType;
-
-impl TheTrait<usize> for isize { }
-//~^ ERROR E0117
-
-impl TheTrait<TheType> for isize { }
-
-impl TheTrait<isize> for TheType { }
-
-impl !Send for Vec<isize> { }
-//~^ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-orphan.stderr b/src/test/ui/re_rebalance_coherence/coherence-orphan.stderr
deleted file mode 100644
index 6e5e734401f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-orphan.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-orphan.rs:22:1
-   |
-LL | impl TheTrait<usize> for isize { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-orphan.rs:29:1
-   |
-LL | impl !Send for Vec<isize> { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.rs
deleted file mode 100644
index 13604d9e495..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Check that we detect an overlap here in the case where:
-//
-//    for some type X:
-//      T = (X,)
-//      T11 = X, U11 = X
-//
-// Seems pretty basic, but then there was issue #24241. :)
-
-trait From<U> {
-    fn foo() {}
-}
-
-impl <T> From<T> for T {
-}
-
-impl <T11, U11> From<(U11,)> for (T11,) { //~ ERROR E0119
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.stderr
deleted file mode 100644
index dc052931ed1..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-all-t-and-tuple.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `From<(_,)>` for type `(_,)`:
-  --> $DIR/coherence-overlap-all-t-and-tuple.rs:28:1
-   |
-LL | impl <T> From<T> for T {
-   | ---------------------- first implementation here
-...
-LL | impl <T11, U11> From<(U11,)> for (T11,) { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(_,)`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.rs
deleted file mode 100644
index 1f0ca50b60f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `T: Sugar + Fruit` to be ambiguous, even
-// though no impls are found.
-
-struct Sweet<X>(X);
-pub trait Sugar {}
-pub trait Fruit {}
-impl<T:Sugar> Sweet<T> { fn dummy(&self) { } }
-//~^ ERROR E0592
-impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
-
-trait Bar<X> {}
-struct A<T, X>(T, X);
-impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
-//~^ ERROR E0592
-impl<X> A<i32, X> { fn f(&self) {} }
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.stderr
deleted file mode 100644
index 8a817fcb440..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream-inherent.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-error[E0592]: duplicate definitions with name `dummy`
-  --> $DIR/coherence-overlap-downstream-inherent.rs:19:26
-   |
-LL | impl<T:Sugar> Sweet<T> { fn dummy(&self) { } }
-   |                          ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-LL | //~^ ERROR E0592
-LL | impl<T:Fruit> Sweet<T> { fn dummy(&self) { } }
-   |                          ------------------- other definition for `dummy`
-
-error[E0592]: duplicate definitions with name `f`
-  --> $DIR/coherence-overlap-downstream-inherent.rs:25:38
-   |
-LL | impl<X, T> A<T, X> where T: Bar<X> { fn f(&self) {} }
-   |                                      ^^^^^^^^^^^^^^ duplicate definitions for `f`
-LL | //~^ ERROR E0592
-LL | impl<X> A<i32, X> { fn f(&self) {} }
-   |                     -------------- other definition for `f`
-   |
-   = note: downstream crates may implement trait `Bar<_>` for type `i32`
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.rs
deleted file mode 100644
index 7a2b28f49b5..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `T: Sugar + Fruit` to be ambiguous, even
-// though no impls are found.
-
-pub trait Sugar {}
-pub trait Fruit {}
-pub trait Sweet {}
-impl<T:Sugar> Sweet for T { }
-impl<T:Fruit> Sweet for T { }
-//~^ ERROR E0119
-
-pub trait Foo<X> {}
-pub trait Bar<X> {}
-impl<X, T> Foo<X> for T where T: Bar<X> {}
-impl<X> Foo<X> for i32 {}
-//~^ ERROR E0119
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.stderr
deleted file mode 100644
index ce08ae15df1..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-downstream.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0119]: conflicting implementations of trait `Sweet`:
-  --> $DIR/coherence-overlap-downstream.rs:20:1
-   |
-LL | impl<T:Sugar> Sweet for T { }
-   | ------------------------- first implementation here
-LL | impl<T:Fruit> Sweet for T { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error[E0119]: conflicting implementations of trait `Foo<_>` for type `i32`:
-  --> $DIR/coherence-overlap-downstream.rs:26:1
-   |
-LL | impl<X, T> Foo<X> for T where T: Bar<X> {}
-   | --------------------------------------- first implementation here
-LL | impl<X> Foo<X> for i32 {}
-   | ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `i32`
-   |
-   = note: downstream crates may implement trait `Bar<_>` for type `i32`
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.rs
deleted file mode 100644
index ff6af49dfb2..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `Box<U>: !Sugar` to be ambiguous, even
-// though we see no impl of `Sugar` for `Box`. Therefore, an overlap
-// error is reported for the following pair of impls (#23516).
-
-pub trait Sugar {}
-
-struct Cake<X>(X);
-
-impl<T:Sugar> Cake<T> { fn dummy(&self) { } }
-//~^ ERROR E0592
-impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.stderr
deleted file mode 100644
index 26b59fbe71b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516-inherent.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0592]: duplicate definitions with name `dummy`
-  --> $DIR/coherence-overlap-issue-23516-inherent.rs:21:25
-   |
-LL | impl<T:Sugar> Cake<T> { fn dummy(&self) { } }
-   |                         ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-LL | //~^ ERROR E0592
-LL | impl<U:Sugar> Cake<Box<U>> { fn dummy(&self) { } }
-   |                              ------------------- other definition for `dummy`
-   |
-   = note: downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.rs
deleted file mode 100644
index 2e45572e4ec..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `Box<U>: !Sugar` to be ambiguous, even
-// though we see no impl of `Sugar` for `Box`. Therefore, an overlap
-// error is reported for the following pair of impls (#23516).
-
-pub trait Sugar { fn dummy(&self) { } }
-pub trait Sweet { fn dummy(&self) { } }
-impl<T:Sugar> Sweet for T { }
-impl<U:Sugar> Sweet for Box<U> { }
-//~^ ERROR E0119
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.stderr
deleted file mode 100644
index 9d3d564b8a9..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-issue-23516.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0119]: conflicting implementations of trait `Sweet` for type `std::boxed::Box<_>`:
-  --> $DIR/coherence-overlap-issue-23516.rs:20:1
-   |
-LL | impl<T:Sugar> Sweet for T { }
-   | ------------------------- first implementation here
-LL | impl<U:Sugar> Sweet for Box<U> { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `std::boxed::Box<_>`
-   |
-   = note: downstream crates may implement trait `Sugar` for type `std::boxed::Box<_>`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.rs
deleted file mode 100644
index 1474fbd700c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-trait Foo { fn foo() {} }
-
-impl<T> Foo for T {}
-impl<U> Foo for U {} //~ ERROR conflicting implementations of trait `Foo`:
-
-trait Bar { fn bar() {} }
-
-impl<T> Bar for (T, u8) {}
-impl<T> Bar for (u8, T) {} //~ ERROR conflicting implementations of trait `Bar` for type `(u8, u8)`:
-
-trait Baz<T> { fn baz() {} }
-
-impl<T> Baz<u8> for T {}
-impl<T> Baz<T> for u8 {} //~ ERROR conflicting implementations of trait `Baz<u8>` for type `u8`:
-
-trait Quux<U, V> { fn quux() {} }
-
-impl<T, U, V> Quux<U, V> for T {}
-impl<T, U> Quux<U, U> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-impl<T, V> Quux<T, V> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.stderr
deleted file mode 100644
index c7b24e7bf6d..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-messages.stderr
+++ /dev/null
@@ -1,44 +0,0 @@
-error[E0119]: conflicting implementations of trait `Foo`:
-  --> $DIR/coherence-overlap-messages.rs:16:1
-   |
-LL | impl<T> Foo for T {}
-   | ----------------- first implementation here
-LL | impl<U> Foo for U {} //~ ERROR conflicting implementations of trait `Foo`:
-   | ^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error[E0119]: conflicting implementations of trait `Bar` for type `(u8, u8)`:
-  --> $DIR/coherence-overlap-messages.rs:21:1
-   |
-LL | impl<T> Bar for (T, u8) {}
-   | ----------------------- first implementation here
-LL | impl<T> Bar for (u8, T) {} //~ ERROR conflicting implementations of trait `Bar` for type `(u8, u8)`:
-   | ^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(u8, u8)`
-
-error[E0119]: conflicting implementations of trait `Baz<u8>` for type `u8`:
-  --> $DIR/coherence-overlap-messages.rs:26:1
-   |
-LL | impl<T> Baz<u8> for T {}
-   | --------------------- first implementation here
-LL | impl<T> Baz<T> for u8 {} //~ ERROR conflicting implementations of trait `Baz<u8>` for type `u8`:
-   | ^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u8`
-
-error[E0119]: conflicting implementations of trait `Quux<_, _>`:
-  --> $DIR/coherence-overlap-messages.rs:31:1
-   |
-LL | impl<T, U, V> Quux<U, V> for T {}
-   | ------------------------------ first implementation here
-LL | impl<T, U> Quux<U, U> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error[E0119]: conflicting implementations of trait `Quux<_, _>`:
-  --> $DIR/coherence-overlap-messages.rs:32:1
-   |
-LL | impl<T, U, V> Quux<U, V> for T {}
-   | ------------------------------ first implementation here
-LL | impl<T, U> Quux<U, U> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-LL | impl<T, V> Quux<T, V> for T {} //~ ERROR conflicting implementations of trait `Quux<_, _>`:
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation
-
-error: aborting due to 5 previous errors
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.rs
deleted file mode 100644
index e802c0113ad..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `i16: Remote` to be ambiguous, even
-// though the upstream crate doesn't implement it for now.
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib;
-
-use coherence_lib::Remote;
-
-struct A<X>(X);
-impl<T> A<T> where T: Remote { fn dummy(&self) { } }
-//~^ ERROR E0592
-impl A<i16> { fn dummy(&self) { } }
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.stderr
deleted file mode 100644
index 70b19ddb429..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream-inherent.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0592]: duplicate definitions with name `dummy`
-  --> $DIR/coherence-overlap-upstream-inherent.rs:23:32
-   |
-LL | impl<T> A<T> where T: Remote { fn dummy(&self) { } }
-   |                                ^^^^^^^^^^^^^^^^^^^ duplicate definitions for `dummy`
-LL | //~^ ERROR E0592
-LL | impl A<i16> { fn dummy(&self) { } }
-   |               ------------------- other definition for `dummy`
-   |
-   = note: upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0592`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.rs b/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.rs
deleted file mode 100644
index afbc69cac33..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that we consider `i16: Remote` to be ambiguous, even
-// though the upstream crate doesn't implement it for now.
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib;
-
-use coherence_lib::Remote;
-
-trait Foo {}
-impl<T> Foo for T where T: Remote {}
-impl Foo for i16 {}
-//~^ ERROR E0119
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.stderr
deleted file mode 100644
index 88bea02b348..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlap-upstream.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0119]: conflicting implementations of trait `Foo` for type `i16`:
-  --> $DIR/coherence-overlap-upstream.rs:24:1
-   |
-LL | impl<T> Foo for T where T: Remote {}
-   | --------------------------------- first implementation here
-LL | impl Foo for i16 {}
-   | ^^^^^^^^^^^^^^^^ conflicting implementation for `i16`
-   |
-   = note: upstream crates may add new impl of trait `coherence_lib::Remote` for type `i16` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.rs b/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.rs
deleted file mode 100644
index 25d8e3197f4..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::Remote;
-
-struct Foo;
-
-impl<T> Remote for lib::Pair<T,Foo> { }
-//~^ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.stderr b/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.stderr
deleted file mode 100644
index 2629a017b79..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-overlapping-pairs.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-overlapping-pairs.rs:20:1
-   |
-LL | impl<T> Remote for lib::Pair<T,Foo> { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.rs b/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.rs
deleted file mode 100644
index 002b422f704..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.rs
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that the same coverage rules apply even if the local type appears in the
-// list of type parameters, not the self type.
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::{Remote1, Pair};
-
-pub struct Local<T>(T);
-
-impl<T, U> Remote1<Pair<T, Local<U>>> for i32 { }
-//~^ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.stderr b/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.stderr
deleted file mode 100644
index 197056746b9..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered-1.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-pair-covered-uncovered-1.rs:23:1
-   |
-LL | impl<T, U> Remote1<Pair<T, Local<U>>> for i32 { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.rs b/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.rs
deleted file mode 100644
index 9b0d7177ffc..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::{Remote, Pair};
-
-struct Local<T>(T);
-
-impl<T,U> Remote for Pair<T,Local<U>> { }
-//~^ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.stderr b/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.stderr
deleted file mode 100644
index b9e2eced94b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-pair-covered-uncovered.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-pair-covered-uncovered.rs:20:1
-   |
-LL | impl<T,U> Remote for Pair<T,Local<U>> { }
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.rs b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.rs
deleted file mode 100644
index e3f945504fe..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(rustc_attrs)]
-#![feature(re_rebalance_coherence)]
-
-// Here we expect a coherence conflict because, even though `i32` does
-// not implement `Iterator`, we cannot rely on that negative reasoning
-// due to the orphan rules. Therefore, `A::Item` may yet turn out to
-// be `i32`.
-
-pub trait Foo<P> { fn foo() {} }
-
-pub trait Bar {
-    type Output: 'static;
-}
-
-impl Foo<i32> for i32 { }
-
-impl<A:Iterator> Foo<A::Item> for A { }  //~ ERROR E0119
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.stderr b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.stderr
deleted file mode 100644
index 81b13438373..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-orphan.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0119]: conflicting implementations of trait `Foo<i32>` for type `i32`:
-  --> $DIR/coherence-projection-conflict-orphan.rs:27:1
-   |
-LL | impl Foo<i32> for i32 { }
-   | --------------------- first implementation here
-LL | 
-LL | impl<A:Iterator> Foo<A::Item> for A { }  //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `i32`
-   |
-   = note: upstream crates may add new impl of trait `std::iter::Iterator` for type `i32` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.rs b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.rs
deleted file mode 100644
index cb5c94a18a7..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.rs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Coherence error results because we do not know whether `T: Foo<P>` or not
-// for the second impl.
-
-use std::marker::PhantomData;
-
-pub trait Foo<P> { fn foo() {} }
-
-impl <P, T: Foo<P>> Foo<P> for Option<T> {}
-
-impl<T, U> Foo<T> for Option<U> { } //~ ERROR E0119
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.stderr b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.stderr
deleted file mode 100644
index fe5a66ef9ea..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict-ty-param.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `Foo<_>` for type `std::option::Option<_>`:
-  --> $DIR/coherence-projection-conflict-ty-param.rs:22:1
-   |
-LL | impl <P, T: Foo<P>> Foo<P> for Option<T> {}
-   | ---------------------------------------- first implementation here
-LL | 
-LL | impl<T, U> Foo<T> for Option<U> { } //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `std::option::Option<_>`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.rs b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.rs
deleted file mode 100644
index 73adba0819e..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::marker::PhantomData;
-
-pub trait Foo<P> { fn foo() {} }
-
-pub trait Bar {
-    type Output: 'static;
-}
-
-impl Foo<i32> for i32 { }
-
-impl<A:Bar> Foo<A::Output> for A { } //~ ERROR E0119
-
-impl Bar for i32 {
-    type Output = i32;
-}
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.stderr b/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.stderr
deleted file mode 100644
index 7f5ff3de178..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-conflict.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `Foo<i32>` for type `i32`:
-  --> $DIR/coherence-projection-conflict.rs:23:1
-   |
-LL | impl Foo<i32> for i32 { }
-   | --------------------- first implementation here
-LL | 
-LL | impl<A:Bar> Foo<A::Output> for A { } //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `i32`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-ok-orphan.rs b/src/test/ui/re_rebalance_coherence/coherence-projection-ok-orphan.rs
deleted file mode 100644
index b02289dc68e..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-ok-orphan.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// compile-pass
-// skip-codegen
-#![allow(dead_code)]
-#![feature(re_rebalance_coherence)]
-// Here we do not get a coherence conflict because `Baz: Iterator`
-// does not hold and (due to the orphan rules), we can rely on that.
-
-pub trait Foo<P> {}
-
-pub trait Bar {
-    type Output: 'static;
-}
-
-struct Baz;
-impl Foo<i32> for Baz { }
-
-impl<A:Iterator> Foo<A::Item> for A { }
-
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-projection-ok.rs b/src/test/ui/re_rebalance_coherence/coherence-projection-ok.rs
deleted file mode 100644
index 9c797b61a43..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-projection-ok.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// compile-pass
-// skip-codegen
-pub trait Foo<P> {}
-
-pub trait Bar {
-    type Output: 'static;
-}
-
-impl Foo<i32> for i32 { }
-
-impl<A:Bar> Foo<A::Output> for A { }
-
-impl Bar for i32 {
-    type Output = u32;
-}
-
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.rs b/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.rs
deleted file mode 100644
index c6dda7f2773..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-use std::fmt::Debug;
-use std::default::Default;
-
-// Test that a blank impl for all T conflicts with an impl for some
-// specific T.
-
-trait MyTrait {
-    fn get(&self) -> usize;
-}
-
-impl<T> MyTrait for (T,T) {
-    fn get(&self) -> usize { 0 }
-}
-
-impl<A,B> MyTrait for (A,B) { //~ ERROR E0119
-    fn get(&self) -> usize { self.dummy }
-}
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.stderr b/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.stderr
deleted file mode 100644
index bd4f2908cdf..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-tuple-conflict.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `(_, _)`:
-  --> $DIR/coherence-tuple-conflict.rs:27:1
-   |
-LL | impl<T> MyTrait for (T,T) {
-   | ------------------------- first implementation here
-...
-LL | impl<A,B> MyTrait for (A,B) { //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(_, _)`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.rs b/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.rs
deleted file mode 100644
index 6849f004c63..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that a local, generic type appearing within a
-// *non-fundamental* remote type like `Vec` is not considered local.
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::Remote;
-
-struct Local<T>(T);
-
-impl<T> Remote for Vec<Local<T>> { } //~ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.stderr b/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.stderr
deleted file mode 100644
index d507edbb0bd..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-vec-local-2.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-vec-local-2.rs:23:1
-   |
-LL | impl<T> Remote for Vec<Local<T>> { } //~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence-vec-local.rs b/src/test/ui/re_rebalance_coherence/coherence-vec-local.rs
deleted file mode 100644
index 24a00febfd8..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-vec-local.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that a local type (with no type parameters) appearing within a
-// *non-fundamental* remote type like `Vec` is not considered local.
-
-// aux-build:coherence_lib.rs
-
-extern crate coherence_lib as lib;
-use lib::Remote;
-
-struct Local;
-
-impl Remote for Vec<Local> { } //~ ERROR E0117
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence-vec-local.stderr b/src/test/ui/re_rebalance_coherence/coherence-vec-local.stderr
deleted file mode 100644
index fc400da7115..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence-vec-local.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence-vec-local.rs:23:1
-   |
-LL | impl Remote for Vec<Local> { } //~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct.rs b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct.rs
deleted file mode 100644
index 5e09cf69a61..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-// compile-pass
-// skip-codgen
-#![allow(dead_code)]
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-trait MyTrait { fn foo() {} }
-impl<T: lib::MyCopy> MyTrait for T { }
-
-// `MyFundamentalStruct` is declared fundamental, so we can test that
-//
-//    MyFundamentalStruct<MyTrait>: !MyTrait
-//
-// Huzzah.
-impl MyTrait for lib::MyFundamentalStruct<MyType> { }
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_ref.rs b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_ref.rs
deleted file mode 100644
index 8e5d2bf4cf7..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_ref.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-// compile-pass
-// skip-codegen
-#![allow(dead_code)]
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-trait MyTrait { fn foo() {} }
-impl<T: lib::MyCopy> MyTrait for T { }
-
-// `MyFundamentalStruct` is declared fundamental, so we can test that
-//
-//    MyFundamentalStruct<&MyTrait>: !MyTrait
-//
-// Huzzah.
-impl<'a> MyTrait for lib::MyFundamentalStruct<&'a MyType> { }
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.rs b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.rs
deleted file mode 100644
index e7a8edbd221..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-
-
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-trait MyTrait { fn foo() {} }
-
-impl<T: lib::MyCopy> MyTrait for T { }
-
-// Tuples are not fundamental.
-impl MyTrait for lib::MyFundamentalStruct<(MyType,)> { } //~ ERROR E0119
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.stderr b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.stderr
deleted file mode 100644
index e6adc08c28c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_fundamental_struct_tuple.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `lib::MyFundamentalStruct<(MyType,)>`:
-  --> $DIR/coherence_copy_like_err_fundamental_struct_tuple.rs:29:1
-   |
-LL | impl<T: lib::MyCopy> MyTrait for T { }
-   | ---------------------------------- first implementation here
-...
-LL | impl MyTrait for lib::MyFundamentalStruct<(MyType,)> { } //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `lib::MyFundamentalStruct<(MyType,)>`
-   |
-   = note: upstream crates may add new impl of trait `lib::MyCopy` for type `lib::MyFundamentalStruct<(MyType,)>` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.rs b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.rs
deleted file mode 100644
index 3f91750104b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_copy_like_lib.rs
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-trait MyTrait { fn foo() {} }
-impl<T: lib::MyCopy> MyTrait for T { }
-
-// `MyStruct` is not declared fundamental, therefore this would
-// require that
-//
-//     MyStruct<MyType>: !MyTrait
-//
-// which we cannot approve.
-impl MyTrait for lib::MyStruct<MyType> { } //~ ERROR E0119
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.stderr b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.stderr
deleted file mode 100644
index a40ae4fc448..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_struct.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `lib::MyStruct<MyType>`:
-  --> $DIR/coherence_copy_like_err_struct.rs:31:1
-   |
-LL | impl<T: lib::MyCopy> MyTrait for T { }
-   | ---------------------------------- first implementation here
-...
-LL | impl MyTrait for lib::MyStruct<MyType> { } //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `lib::MyStruct<MyType>`
-   |
-   = note: upstream crates may add new impl of trait `lib::MyCopy` for type `lib::MyStruct<MyType>` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.rs b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.rs
deleted file mode 100644
index 0e7eef6fe6d..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-trait MyTrait { fn foo() {} }
-impl<T: lib::MyCopy> MyTrait for T { }
-
-// Tuples are not fundamental, therefore this would require that
-//
-//     (MyType,): !MyTrait
-//
-// which we cannot approve.
-impl MyTrait for (MyType,) { } //~ ERROR E0119
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.stderr b/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.stderr
deleted file mode 100644
index 82e43f6d721..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_copy_like_err_tuple.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0119]: conflicting implementations of trait `MyTrait` for type `(MyType,)`:
-  --> $DIR/coherence_copy_like_err_tuple.rs:30:1
-   |
-LL | impl<T: lib::MyCopy> MyTrait for T { }
-   | ---------------------------------- first implementation here
-...
-LL | impl MyTrait for (MyType,) { } //~ ERROR E0119
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `(MyType,)`
-   |
-   = note: upstream crates may add new impl of trait `lib::MyCopy` for type `(MyType,)` in future versions
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_inherent.rs b/src/test/ui/re_rebalance_coherence/coherence_inherent.rs
deleted file mode 100644
index d4d29326e4f..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_inherent.rs
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// Tests that methods that implement a trait cannot be invoked
-// unless the trait is imported.
-
-mod Lib {
-    pub trait TheTrait {
-        fn the_fn(&self);
-    }
-
-    pub struct TheStruct;
-
-    impl TheTrait for TheStruct {
-        fn the_fn(&self) {}
-    }
-}
-
-mod Import {
-    // Trait is in scope here:
-    use Lib::TheStruct;
-    use Lib::TheTrait;
-
-    fn call_the_fn(s: &TheStruct) {
-        s.the_fn();
-    }
-}
-
-mod NoImport {
-    // Trait is not in scope here:
-    use Lib::TheStruct;
-
-    fn call_the_fn(s: &TheStruct) {
-        s.the_fn(); //~ ERROR no method named `the_fn` found
-    }
-}
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence_inherent.stderr b/src/test/ui/re_rebalance_coherence/coherence_inherent.stderr
deleted file mode 100644
index 9294899bfee..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_inherent.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0599]: no method named `the_fn` found for type `&Lib::TheStruct` in the current scope
-  --> $DIR/coherence_inherent.rs:43:11
-   |
-LL |         s.the_fn(); //~ ERROR no method named `the_fn` found
-   |           ^^^^^^
-   |
-   = help: items from traits can only be used if the trait is in scope
-   = note: the following trait is implemented but not in scope, perhaps add a `use` for it:
-           `use Lib::TheTrait;`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.rs b/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.rs
deleted file mode 100644
index beb60f57a2a..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(re_rebalance_coherence)]
-
-// aux-build:coherence_inherent_cc_lib.rs
-
-// Tests that methods that implement a trait cannot be invoked
-// unless the trait is imported.
-
-extern crate coherence_inherent_cc_lib;
-
-mod Import {
-    // Trait is in scope here:
-    use coherence_inherent_cc_lib::TheStruct;
-    use coherence_inherent_cc_lib::TheTrait;
-
-    fn call_the_fn(s: &TheStruct) {
-        s.the_fn();
-    }
-}
-
-mod NoImport {
-    // Trait is not in scope here:
-    use coherence_inherent_cc_lib::TheStruct;
-
-    fn call_the_fn(s: &TheStruct) {
-        s.the_fn(); //~ ERROR no method named `the_fn` found
-    }
-}
-
-fn main() {}
diff --git a/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.stderr b/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.stderr
deleted file mode 100644
index bf67313879b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_inherent_cc.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0599]: no method named `the_fn` found for type `&coherence_inherent_cc_lib::TheStruct` in the current scope
-  --> $DIR/coherence_inherent_cc.rs:35:11
-   |
-LL |         s.the_fn(); //~ ERROR no method named `the_fn` found
-   |           ^^^^^^
-   |
-   = help: items from traits can only be used if the trait is in scope
-   = note: the following trait is implemented but not in scope, perhaps add a `use` for it:
-           `use coherence_inherent_cc_lib::TheTrait;`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local.rs b/src/test/ui/re_rebalance_coherence/coherence_local.rs
deleted file mode 100644
index 7f72ff7af88..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local.rs
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-// compile-pass
-// skip-codegen
-#![allow(dead_code)]
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-// These are all legal because they are all fundamental types:
-
-impl lib::MyCopy for MyType { }
-impl<'a> lib::MyCopy for &'a MyType { }
-impl<'a> lib::MyCopy for &'a Box<MyType> { }
-impl lib::MyCopy for Box<MyType> { }
-impl lib::MyCopy for lib::MyFundamentalStruct<MyType> { }
-impl lib::MyCopy for lib::MyFundamentalStruct<Box<MyType>> { }
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.rs b/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.rs
deleted file mode 100644
index 3d7145e489d..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-
-#![feature(re_rebalance_coherence)]
-#![allow(dead_code)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-// These are all legal because they are all fundamental types:
-
-// MyStruct is not fundamental.
-impl lib::MyCopy for lib::MyStruct<MyType> { } //~ ERROR E0117
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.stderr b/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.stderr
deleted file mode 100644
index c35e95040de..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local_err_struct.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence_local_err_struct.rs:26:1
-   |
-LL | impl lib::MyCopy for lib::MyStruct<MyType> { } //~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.rs b/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.rs
deleted file mode 100644
index f2c9008dd8c..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.rs
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-
-#![feature(re_rebalance_coherence)]
-#![allow(dead_code)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-// These are all legal because they are all fundamental types:
-
-// Tuples are not fundamental, so this is not a local impl.
-impl lib::MyCopy for (MyType,) { } //~ ERROR E0117
-
-
-fn main() { }
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.stderr b/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.stderr
deleted file mode 100644
index a3f9f2d32b8..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local_err_tuple.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
-  --> $DIR/coherence_local_err_tuple.rs:26:1
-   |
-LL | impl lib::MyCopy for (MyType,) { } //~ ERROR E0117
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0117`.
diff --git a/src/test/ui/re_rebalance_coherence/coherence_local_ref.rs b/src/test/ui/re_rebalance_coherence/coherence_local_ref.rs
deleted file mode 100644
index b15a5cc245b..00000000000
--- a/src/test/ui/re_rebalance_coherence/coherence_local_ref.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Test that we are able to introduce a negative constraint that
-// `MyType: !MyTrait` along with other "fundamental" wrappers.
-
-// aux-build:coherence_copy_like_lib.rs
-// compile-pass
-// skip-codegen
-#![allow(dead_code)]
-#![feature(re_rebalance_coherence)]
-
-extern crate coherence_copy_like_lib as lib;
-
-struct MyType { x: i32 }
-
-// naturally, legal
-impl lib::MyCopy for MyType { }
-
-
-fn main() { }