From e315bbf736acc6408955f48e2effb1645bf1a022 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Mon, 8 May 2023 21:43:03 +0000 Subject: [PATCH] test for reachable private impl --- .../reachable/auxiliary/foreign-priv-aux.rs | 21 +++++++++++++++++++ tests/ui/reachable/foreign-priv.rs | 12 +++++++++++ 2 files changed, 33 insertions(+) create mode 100644 tests/ui/reachable/auxiliary/foreign-priv-aux.rs create mode 100644 tests/ui/reachable/foreign-priv.rs diff --git a/tests/ui/reachable/auxiliary/foreign-priv-aux.rs b/tests/ui/reachable/auxiliary/foreign-priv-aux.rs new file mode 100644 index 0000000000000..10dc086146139 --- /dev/null +++ b/tests/ui/reachable/auxiliary/foreign-priv-aux.rs @@ -0,0 +1,21 @@ +trait PrivTrait { + fn priv_fn(&self); +} + +pub struct ImplPrivTrait; + +impl PrivTrait for ImplPrivTrait { + fn priv_fn(&self) {} +} + +pub struct Wrapper(T); + +pub trait PubTrait { + fn pub_fn(&self); +} + +impl PubTrait for Wrapper { + fn pub_fn(&self) { + self.0.priv_fn() + } +} diff --git a/tests/ui/reachable/foreign-priv.rs b/tests/ui/reachable/foreign-priv.rs new file mode 100644 index 0000000000000..bf336b6be7ab6 --- /dev/null +++ b/tests/ui/reachable/foreign-priv.rs @@ -0,0 +1,12 @@ +// aux-build:foreign-priv-aux.rs +// build-pass + +#![crate_type = "lib"] + +extern crate foreign_priv_aux; + +use foreign_priv_aux::{ImplPrivTrait, PubTrait, Wrapper}; + +pub fn foo(x: Wrapper) { + x.pub_fn(); +}