about summary refs log tree commit diff
path: root/src/test/ui/methods/method-recursive-blanket-impl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/methods/method-recursive-blanket-impl.rs')
-rw-r--r--src/test/ui/methods/method-recursive-blanket-impl.rs41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/test/ui/methods/method-recursive-blanket-impl.rs b/src/test/ui/methods/method-recursive-blanket-impl.rs
deleted file mode 100644
index a2db75b4e85..00000000000
--- a/src/test/ui/methods/method-recursive-blanket-impl.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-// run-pass
-#![allow(unused_variables)]
-#![allow(unused_imports)]
-// Test that we don't trigger on the blanket impl for all `&'a T` but
-// rather keep autoderefing and trigger on the underlying impl.  To
-// know not to stop at the blanket, we have to recursively evaluate
-// the `T:Foo` bound.
-
-// pretty-expanded FIXME #23616
-
-use std::marker::Sized;
-
-// Note: this must be generic for the problem to show up
-trait Foo<A> {
-    fn foo(&self, a: A);
-}
-
-impl Foo<u8> for [u8] {
-    fn foo(&self, a: u8) {}
-}
-
-impl<'a, A, T> Foo<A> for &'a T where T: Foo<A> {
-    fn foo(&self, a: A) {
-        Foo::foo(*self, a)
-    }
-}
-
-trait Bar {
-    fn foo(&self);
-}
-
-struct MyType;
-
-impl Bar for MyType {
-    fn foo(&self) {}
-}
-
-fn main() {
-    let mut m = MyType;
-    (&mut m).foo()
-}