about summary refs log tree commit diff
path: root/tests/ui/impl-unused-tps.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/impl-unused-tps.rs')
-rw-r--r--tests/ui/impl-unused-tps.rs46
1 files changed, 20 insertions, 26 deletions
diff --git a/tests/ui/impl-unused-tps.rs b/tests/ui/impl-unused-tps.rs
index a5836db3c8e..3eb9daedf76 100644
--- a/tests/ui/impl-unused-tps.rs
+++ b/tests/ui/impl-unused-tps.rs
@@ -1,35 +1,34 @@
+//~ ERROR overflow evaluating the requirement `([isize; 0], _): Sized
+
 trait Foo<A> {
-    fn get(&self, A: &A) {}
+    fn get(&self, A: &A) { }
 }
 
 trait Bar {
     type Out;
 }
 
-impl<T> Foo<T> for [isize; 0] {
+impl<T> Foo<T> for [isize;0] {
     // OK, T is used in `Foo<T>`.
 }
 
-impl<T, U> Foo<T> for [isize; 1] {
+impl<T,U> Foo<T> for [isize;1] {
     //~^ ERROR the type parameter `U` is not constrained
 }
 
-impl<T, U> Foo<T> for [isize; 2]
-where
-    T: Bar<Out = U>,
-{
+impl<T,U> Foo<T> for [isize;2] where T : Bar<Out=U> {
     // OK, `U` is now constrained by the output type parameter.
 }
 
-impl<T: Bar<Out = U>, U> Foo<T> for [isize; 3] {
+impl<T:Bar<Out=U>,U> Foo<T> for [isize;3] {
     // OK, same as above but written differently.
 }
 
-impl<T, U> Foo<T> for U {
+impl<T,U> Foo<T> for U {
     //~^ ERROR conflicting implementations of trait `Foo<_>` for type `[isize; 0]`
 }
 
-impl<T, U> Bar for T {
+impl<T,U> Bar for T {
     //~^ ERROR the type parameter `U` is not constrained
 
     type Out = U;
@@ -37,33 +36,28 @@ impl<T, U> Bar for T {
     // Using `U` in an associated type within the impl is not good enough!
 }
 
-impl<T, U> Bar for T
-where
-    T: Bar<Out = U>,
+impl<T,U> Bar for T
+    where T : Bar<Out=U>
 {
-    //~^^^^ ERROR the type parameter `U` is not constrained by the impl trait, self type, or predicates
-    //~| ERROR conflicting implementations of trait `Bar`
+    //~^^^ ERROR the type parameter `U` is not constrained
+
     // This crafty self-referential attempt is still no good.
 }
 
-impl<T, U, V> Foo<T> for T
-where
-    (T, U): Bar<Out = V>,
+impl<T,U,V> Foo<T> for T
+    where (T,U): Bar<Out=V>
 {
-    //~^^^^ ERROR the type parameter `U` is not constrained
-    //~| ERROR the type parameter `V` is not constrained
-    //~| ERROR conflicting implementations of trait `Foo<[isize; 0]>` for type `[isize; 0]`
+    //~^^^ ERROR the type parameter `U` is not constrained
+    //~|   ERROR the type parameter `V` is not constrained
 
     // Here, `V` is bound by an output type parameter, but the inputs
     // are not themselves constrained.
 }
 
-impl<T, U, V> Foo<(T, U)> for T
-where
-    (T, U): Bar<Out = V>,
+impl<T,U,V> Foo<(T,U)> for T
+    where (T,U): Bar<Out=V>
 {
-    //~^^^^ ERROR conflicting implementations of trait `Foo<([isize; 0], _)>` for type `[isize; 0]`
     // As above, but both T and U ARE constrained.
 }
 
-fn main() {}
+fn main() { }