Make #[doc(include)] paths behave like other paths
This makes them relative to the containing file instead of the crate root
This commit is contained in:
parent
ba78db310b
commit
138e08ccf6
2 changed files with 34 additions and 21 deletions
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
#![stable(feature = "raw_os", since = "1.1.0")]
|
||||
|
||||
#[doc(include = "os/raw/char.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/char.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "char.md"))]
|
||||
#[cfg(any(all(target_os = "linux", any(target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "powerpc",
|
||||
|
|
@ -31,7 +32,8 @@
|
|||
target_arch = "powerpc")),
|
||||
all(target_os = "fuchsia", target_arch = "aarch64")))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_char = u8;
|
||||
#[doc(include = "os/raw/char.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/char.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "char.md"))]
|
||||
#[cfg(not(any(all(target_os = "linux", any(target_arch = "aarch64",
|
||||
target_arch = "arm",
|
||||
target_arch = "powerpc",
|
||||
|
|
@ -54,37 +56,51 @@
|
|||
target_arch = "powerpc")),
|
||||
all(target_os = "fuchsia", target_arch = "aarch64"))))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_char = i8;
|
||||
#[doc(include = "os/raw/schar.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/schar.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "schar.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_schar = i8;
|
||||
#[doc(include = "os/raw/uchar.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/uchar.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "uchar.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_uchar = u8;
|
||||
#[doc(include = "os/raw/short.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/short.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "short.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_short = i16;
|
||||
#[doc(include = "os/raw/ushort.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/ushort.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "ushort.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_ushort = u16;
|
||||
#[doc(include = "os/raw/int.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/int.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "int.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_int = i32;
|
||||
#[doc(include = "os/raw/uint.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/uint.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "uint.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_uint = u32;
|
||||
#[doc(include = "os/raw/long.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/long.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "long.md"))]
|
||||
#[cfg(any(target_pointer_width = "32", windows))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_long = i32;
|
||||
#[doc(include = "os/raw/ulong.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/ulong.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "ulong.md"))]
|
||||
#[cfg(any(target_pointer_width = "32", windows))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_ulong = u32;
|
||||
#[doc(include = "os/raw/long.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/long.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "long.md"))]
|
||||
#[cfg(all(target_pointer_width = "64", not(windows)))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_long = i64;
|
||||
#[doc(include = "os/raw/ulong.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/ulong.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "ulong.md"))]
|
||||
#[cfg(all(target_pointer_width = "64", not(windows)))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_ulong = u64;
|
||||
#[doc(include = "os/raw/longlong.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/longlong.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "longlong.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_longlong = i64;
|
||||
#[doc(include = "os/raw/ulonglong.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/ulonglong.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "ulonglong.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_ulonglong = u64;
|
||||
#[doc(include = "os/raw/float.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/float.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "float.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_float = f32;
|
||||
#[doc(include = "os/raw/double.md")]
|
||||
#[cfg_attr(stage0, doc(include = "os/raw/double.md"))]
|
||||
#[cfg_attr(not(stage0), doc(include = "double.md"))]
|
||||
#[stable(feature = "raw_os", since = "1.1.0")] pub type c_double = f64;
|
||||
|
||||
#[stable(feature = "raw_os", since = "1.1.0")]
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ use crate::symbol::{sym, Symbol};
|
|||
use crate::tokenstream::{TokenStream, TokenTree};
|
||||
use crate::visit::{self, Visitor};
|
||||
use crate::util::map_in_place::MapInPlace;
|
||||
use crate::util::path;
|
||||
|
||||
use errors::{Applicability, FatalError};
|
||||
use smallvec::{smallvec, SmallVec};
|
||||
|
|
@ -1253,7 +1254,7 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
|
|||
return noop_visit_attribute(at, self);
|
||||
}
|
||||
|
||||
let filename = self.cx.root_path.join(file.to_string());
|
||||
let filename = path::resolve(&*file.as_str(), it.span(), self.cx.source_map());
|
||||
match fs::read_to_string(&filename) {
|
||||
Ok(src) => {
|
||||
let src_interned = Symbol::intern(&src);
|
||||
|
|
@ -1302,10 +1303,6 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
|
|||
);
|
||||
err.span_label(lit.span, "couldn't read file");
|
||||
|
||||
if e.kind() == ErrorKind::NotFound {
|
||||
err.help("external doc paths are relative to the crate root");
|
||||
}
|
||||
|
||||
err.emit();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue