select the {}",
disambig1, kind1, disambig2,
kind2))
- .emit();
+ .emit();
}
/// Given an enum variant's def, return the def of its enum and the associated fragment
}
}
+#[derive(Debug)]
enum PathKind {
/// can be either value or type, not a macro
Unknown,
/// values, functions, consts, statics, everything in the value namespace
Value,
/// types, traits, everything in the type namespace
- Type
+ Type,
}
impl Clean<Attributes> for [ast::Attribute] {
if UnstableFeatures::from_environment().is_nightly_build() {
let dox = attrs.collapsed_doc_value().unwrap_or_else(String::new);
- for link in markdown_links(&dox) {
+ for ori_link in markdown_links(&dox) {
// bail early for real links
- if link.contains('/') {
+ if ori_link.contains('/') {
continue;
}
- let (def, fragment) = {
+ let link = ori_link.replace("`", "");
+ let (def, fragment) = {
let mut kind = PathKind::Unknown;
let path_str = if let Some(prefix) =
["struct@", "enum@", "type@",
continue;
}
-
match kind {
PathKind::Value => {
if let Ok(def) = resolve(cx, path_str, true) {
}
};
-
let id = register_def(cx, def);
- attrs.links.push((link, id, fragment));
+ attrs.links.push((ori_link, id, fragment));
}
cx.sess().abort_if_errors();
/// Make headings links with anchor ids and build up TOC.
struct LinkReplacer<'a, 'b, I: Iterator<Item = Event<'a>>> {
inner: I,
- links: &'b [(String, String)]
+ links: &'b [(String, String)],
}
impl<'a, 'b, I: Iterator<Item = Event<'a>>> LinkReplacer<'a, 'b, I> {
fn new(iter: I, links: &'b [(String, String)]) -> Self {
LinkReplacer {
inner: iter,
- links
+ links,
}
}
}
--- /dev/null
+// Copyright 2018 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 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_name = "foo"]
+
+pub struct Foo;
+
+// @has foo/struct.Bar.html '//a[@href="../foo/struct.Foo.html"]' 'Foo'
+
+/// Code-styled reference to [`Foo`].
+pub struct Bar;