From cb0ce69026e895b41e7512d4665be05e212e8a7f Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 26 Oct 2015 09:16:05 -0700 Subject: [PATCH] Revert "Remove unnecessary trait accessibility check." This reverts commit f4f95eb3a9f2c3c38679db84aabbb7cdb46d2641. --- src/librustc_privacy/lib.rs | 8 ++++++-- src/test/run-pass/issue-16264.rs | 27 --------------------------- 2 files changed, 6 insertions(+), 29 deletions(-) delete mode 100644 src/test/run-pass/issue-16264.rs diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index 608558ac2bdb..ea20d2b42386 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -852,8 +852,12 @@ impl<'a, 'tcx> PrivacyVisitor<'a, 'tcx> { ty::ImplContainer(_) => { self.check_static_method(span, method_def_id, name) } - // Trait methods are always accessible if the trait is in scope. - ty::TraitContainer(_) => {} + // Trait methods are always all public. The only controlling factor + // is whether the trait itself is accessible or not. + ty::TraitContainer(trait_def_id) => { + self.report_error(self.ensure_public(span, trait_def_id, + None, "source trait")); + } } } } diff --git a/src/test/run-pass/issue-16264.rs b/src/test/run-pass/issue-16264.rs deleted file mode 100644 index 67701de63869..000000000000 --- a/src/test/run-pass/issue-16264.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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -use outer::Foo; - -mod outer { - pub use self::inner::Foo; - - mod inner { - pub trait Foo { - fn bar(&self) {} - } - impl Foo for i32 {} - } -} - -fn main() { - let x: i32 = 0; - x.bar(); -}