diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 6945a6f3724d5..84f693a3be5f9 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -3181,14 +3181,16 @@ fn render_assoc_items(w: &mut fmt::Formatter, render_impls(cx, w, concrete, containing_item)?; write!(w, "")?; - write!(w, " -

- Auto Trait Implementations -

-
- ")?; - render_impls(cx, w, synthetic, containing_item)?; - write!(w, "
")?; + if !synthetic.is_empty() { + write!(w, " +

+ Auto Trait Implementations +

+
+ ")?; + render_impls(cx, w, synthetic, containing_item)?; + write!(w, "
")?; + } } Ok(()) } diff --git a/src/test/rustdoc/empty-section.rs b/src/test/rustdoc/empty-section.rs new file mode 100644 index 0000000000000..3748313593fc2 --- /dev/null +++ b/src/test/rustdoc/empty-section.rs @@ -0,0 +1,20 @@ +// 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. + +#![crate_name = "foo"] + +#![feature(optin_builtin_traits)] + +pub struct Foo; + +// @has foo/struct.Foo.html +// @!has - '//*[@class="synthetic-implementations"]' 'Auto Trait Implementations' +impl !Send for Foo {} +impl !Sync for Foo {}