about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-04-13 03:21:17 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-04-16 21:27:20 +0000
commitdaec3fe4e6bd4af52e551c1e09ae345a80b42452 (patch)
tree1f46e7d44161f7a79b6ef546606feacdfd7617d3
parent44c78eeb4622c7e2c68cfe6a72ae86251426e181 (diff)
downloadrust-daec3fe4e6bd4af52e551c1e09ae345a80b42452.tar.gz
rust-daec3fe4e6bd4af52e551c1e09ae345a80b42452.zip
Always report PRIVATE_IN_PUBLIC violations as hard errors when
the feature `pub_restricted` is enabled.
-rw-r--r--src/librustc_privacy/lib.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs
index a6ce4cc3ee4..d55d0d53b8c 100644
--- a/src/librustc_privacy/lib.rs
+++ b/src/librustc_privacy/lib.rs
@@ -1023,7 +1023,8 @@ impl<'a, 'tcx: 'a, 'v> Visitor<'v> for SearchInterfaceForPrivateItemsVisitor<'a,
                             self.min_visibility = vis;
                         }
                         if !vis.is_at_least(self.required_visibility, &self.tcx.map) {
-                            if self.old_error_set.contains(&ty.id) {
+                            if self.tcx.sess.features.borrow().pub_restricted ||
+                               self.old_error_set.contains(&ty.id) {
                                 span_err!(self.tcx.sess, ty.span, E0446,
                                           "private type in public interface");
                             } else {
@@ -1053,7 +1054,8 @@ impl<'a, 'tcx: 'a, 'v> Visitor<'v> for SearchInterfaceForPrivateItemsVisitor<'a,
                 self.min_visibility = vis;
             }
             if !vis.is_at_least(self.required_visibility, &self.tcx.map) {
-                if self.old_error_set.contains(&trait_ref.ref_id) {
+                if self.tcx.sess.features.borrow().pub_restricted ||
+                   self.old_error_set.contains(&trait_ref.ref_id) {
                     span_err!(self.tcx.sess, trait_ref.path.span, E0445,
                               "private trait in public interface");
                 } else {