about summary refs log tree commit diff
path: root/src/test/ui/autoref-autoderef/autoderef-privacy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/autoref-autoderef/autoderef-privacy.rs')
-rw-r--r--src/test/ui/autoref-autoderef/autoderef-privacy.rs51
1 files changed, 0 insertions, 51 deletions
diff --git a/src/test/ui/autoref-autoderef/autoderef-privacy.rs b/src/test/ui/autoref-autoderef/autoderef-privacy.rs
deleted file mode 100644
index 841be930b77..00000000000
--- a/src/test/ui/autoref-autoderef/autoderef-privacy.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-// run-pass
-// Check we do not select a private method or field when computing autoderefs
-
-#![allow(unused)]
-
-#[derive(Default)]
-pub struct Bar2 { i: i32 }
-#[derive(Default)]
-pub struct Baz2(i32);
-
-impl Bar2 {
-    fn f(&self) -> bool { true }
-}
-
-mod foo {
-    #[derive(Default)]
-    pub struct Bar { i: ::Bar2 }
-    #[derive(Default)]
-    pub struct Baz(::Baz2);
-
-    impl Bar {
-        fn f(&self) -> bool { false }
-    }
-
-    impl ::std::ops::Deref for Bar {
-        type Target = ::Bar2;
-        fn deref(&self) -> &::Bar2 { &self.i }
-    }
-
-    impl ::std::ops::Deref for Baz {
-        type Target = ::Baz2;
-        fn deref(&self) -> &::Baz2 { &self.0 }
-    }
-
-    pub fn f(bar: &Bar, baz: &Baz) {
-        // Since the private fields and methods are visible here, there should be no autoderefs.
-        let _: &::Bar2 = &bar.i;
-        let _: &::Baz2 = &baz.0;
-        assert!(!bar.f());
-    }
-}
-
-fn main() {
-    let bar = foo::Bar::default();
-    let baz = foo::Baz::default();
-    foo::f(&bar, &baz);
-
-    let _: i32 = bar.i;
-    let _: i32 = baz.0;
-    assert!(bar.f());
-}