## User-facing changes - Intra-doc links to primitives that currently go to rust-lang.org/nightly/std/primitive.x.html will start going to channel that rustdoc was built with. Nightly will continue going to /nightly; Beta will link to /beta; stable compilers will link to /1.52.1 (or whatever version they were built as). - Cross-crate links from std to core currently go to /nightly unconditionally. They will start going to /1.52.0 on stable channels (but remain the same on nightly channels). - Intra-crate links from std to std (or core to core) currently go to the same URL they are hosted at; they will continue to do so. Notably, this is different from everything else because it can preserve the distinction between /stable and /1.52.0 by using relative links. Note that "links" includes both intra-doc links and rustdoc's own automatically generated hyperlinks. ## Implementation changes - Update the testsuite to allow linking to /beta and /1.52.1 in docs - Use an html_root_url for the standard library that's dependent on the channel This avoids linking to nightly docs on stable. - Update rustdoc to use channel-dependent links for primitives from an unknown crate - Set DOC_RUST_LANG_ORG_CHANNEL from bootstrap to ensure it's in sync - Include doc.rust-lang.org in the channel
36 lines
863 B
Rust
36 lines
863 B
Rust
#![deny(broken_intra_doc_links)]
|
|
#![feature(lang_items)]
|
|
#![feature(no_core)]
|
|
#![no_core]
|
|
|
|
#[lang = "usize"]
|
|
/// [Self::f]
|
|
/// [Self::MAX]
|
|
// @has intra_link_prim_self/primitive.usize.html
|
|
// @has - '//a[@href="{{channel}}/std/primitive.usize.html#method.f"]' 'Self::f'
|
|
// @has - '//a[@href="{{channel}}/std/primitive.usize.html#associatedconstant.MAX"]' 'Self::MAX'
|
|
impl usize {
|
|
/// Some docs
|
|
pub fn f() {}
|
|
|
|
/// 10 and 2^32 are basically the same.
|
|
pub const MAX: usize = 10;
|
|
|
|
// FIXME(#8995) uncomment this when associated types in inherent impls are supported
|
|
// @ has - '//a[@href="{{channel}}/std/primitive.usize.html#associatedtype.ME"]' 'Self::ME'
|
|
// / [Self::ME]
|
|
//pub type ME = usize;
|
|
}
|
|
|
|
#[doc(primitive = "usize")]
|
|
/// This has some docs.
|
|
mod usize {}
|
|
|
|
/// [S::f]
|
|
/// [Self::f]
|
|
pub struct S;
|
|
|
|
impl S {
|
|
pub fn f() {}
|
|
}
|