diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 635691dd345..766e76137ca 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -1019,7 +1019,11 @@ impl fmt::Display for clean::Import { } } clean::Import::Glob(ref src) => { - write!(f, "use {}::*;", *src) + if src.path.segments.is_empty() { + write!(f, "use *;") + } else { + write!(f, "use {}::*;", *src) + } } } } diff --git a/src/test/rustdoc/issue-42875.rs b/src/test/rustdoc/issue-42875.rs new file mode 100644 index 00000000000..ebf7056755e --- /dev/null +++ b/src/test/rustdoc/issue-42875.rs @@ -0,0 +1,23 @@ +// Copyright 2017 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. + +// compile-flags: --no-defaults + +#![crate_name = "foo"] + +// @has foo/a/index.html '//code' 'use *;' +mod a { + use *; +} + +// @has foo/b/index.html '//code' 'pub use *;' +pub mod b { + pub use *; +}