diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 18d6b1cc1e0f06fd26c248b2a87b47ab59d3c55d..2f5150d799f4578324358733340551bc5e0c06a6 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -601,7 +601,7 @@ fn fmt_type(t: &clean::Type, f: &mut fmt::Formatter, use_absolute: bool) -> fmt: clean::Primitive(prim) => primitive_link(f, prim, prim.as_str()), clean::BareFunction(ref decl) => { if f.alternate() { - write!(f, "{}{}fn{:#}{:#}", + write!(f, "{}{:#}fn{:#}{:#}", UnsafetySpace(decl.unsafety), AbiSpace(decl.abi), decl.generics, diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 7b9b4823ff68c4fbdbf696b3d162f39ce664953b..443990441661574cf6e7d5ed1fd991fd298b5676 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -2292,8 +2292,8 @@ fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, f.generics).len(); write!(w, "{}
", render_spotlight_traits(it)?)?;
     render_attributes(w, it)?;
-    write!(w, "{vis}{constness}{unsafety}{abi}fn \
-               {name}{generics}{decl}{where_clause}
", + write!(w, + "{vis}{constness}{unsafety}{abi}fn {name}{generics}{decl}{where_clause}", vis = VisSpace(&it.visibility), constness = ConstnessSpace(f.constness), unsafety = UnsafetySpace(f.unsafety), @@ -2302,9 +2302,9 @@ fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, generics = f.generics, where_clause = WhereClause { gens: &f.generics, indent: 0, end_newline: true }, decl = Method { - decl: &f.decl, - name_len, - indent: 0, + decl: &f.decl, + name_len, + indent: 0, })?; document(w, cx, it) } @@ -3658,6 +3658,7 @@ fn small_url_encode(s: &str) -> String { .replace(";", "%3B") .replace("[", "%5B") .replace("]", "%5D") + .replace("\"", "%22") } fn sidebar_assoc_items(it: &clean::Item) -> String { diff --git a/src/test/rustdoc/double-quote-escape.rs b/src/test/rustdoc/double-quote-escape.rs new file mode 100644 index 0000000000000000000000000000000000000000..46e2ca8c760b585eee33aaa1d5edb11698de185c --- /dev/null +++ b/src/test/rustdoc/double-quote-escape.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. + +#![crate_name = "foo"] + +// ignore-tidy-linelength + +pub trait Foo { + fn foo() {} +} + +pub struct Bar; + +// @has foo/struct.Bar.html +// @has - '//*[@class="sidebar-links"]/a[@href="#impl-Foo%3Cunsafe%20extern%20%22C%22%20fn()%3E"]' 'Foo' +impl Foo for Bar {} diff --git a/src/tools/linkchecker/main.rs b/src/tools/linkchecker/main.rs index e0153e1e6f67c0cb83bfd91ce0d3326667d00cd8..3b0925d3ef6a47268023aa333cad833e2d86595c 100644 --- a/src/tools/linkchecker/main.rs +++ b/src/tools/linkchecker/main.rs @@ -81,6 +81,7 @@ fn small_url_encode(s: &str) -> String { .replace(";", "%3B") .replace("[", "%5B") .replace("]", "%5D") + .replace("\"", "%22") } impl FileEntry {