Skip to content

Commit fcc89ea

Browse files
committed
rustdoc: Only hide possibly private modules
If an empty public module has no documentation, it shouldn't emit a page that's just a redirect loop to itself! Closes #16265
1 parent c47bb7c commit fcc89ea

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

src/librustdoc/html/render.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -1352,7 +1352,9 @@ impl Context {
13521352
fn ignore_private_item(&self, it: &clean::Item) -> bool {
13531353
match it.inner {
13541354
clean::ModuleItem(ref m) => {
1355-
(m.items.len() == 0 && it.doc_value().is_none()) ||
1355+
(m.items.len() == 0 &&
1356+
it.doc_value().is_none() &&
1357+
it.visibility != Some(ast::Public)) ||
13561358
(self.passes.contains("strip-private") && it.visibility != Some(ast::Public))
13571359
}
13581360
clean::PrimitiveItem(..) => it.visibility != Some(ast::Public),

src/test/rustdoc/issue-16265-1.rs

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
pub struct Foo;
12+
13+
// @has issue_16265_1/traits/index.html '[src]'
14+
pub mod traits {
15+
impl PartialEq for super::Foo {
16+
fn eq(&self, _: &super::Foo) -> bool { true }
17+
}
18+
}

src/test/rustdoc/issue-16265-2.rs

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
12+
// @has issue_16265_2/index.html '[src]'
13+
14+
trait Y {}
15+
impl Y for Option<u32>{}

0 commit comments

Comments
 (0)