Auto merge of #49489 - kennytm:rollup, r=kennytm
Rollup of 10 pull requests - Successful merges: #49443, #49445, #49446, #49463, #49464, #49466, #49468, #49473, #49484, #49486 - Failed merges:
This commit is contained in:
commit
d8a1bc73f7
20 changed files with 41 additions and 33 deletions
|
@ -34,7 +34,7 @@ Libraries
|
||||||
- [Implement libstd for CloudABI.][47268]
|
- [Implement libstd for CloudABI.][47268]
|
||||||
- [`Float::{from_bits, to_bits}` is now available in libcore.][46931]
|
- [`Float::{from_bits, to_bits}` is now available in libcore.][46931]
|
||||||
- [Implement `AsRef<Path>` for Component][46985]
|
- [Implement `AsRef<Path>` for Component][46985]
|
||||||
- [Implemented `Write` for `Cursor<&mut Vec<T>>`][46830]
|
- [Implemented `Write` for `Cursor<&mut Vec<u8>>`][46830]
|
||||||
- [Moved `Duration` to libcore.][46666]
|
- [Moved `Duration` to libcore.][46666]
|
||||||
|
|
||||||
Stabilized APIs
|
Stabilized APIs
|
||||||
|
@ -47,8 +47,6 @@ eg. `static MINUTE: Duration = Duration::from_secs(60);`
|
||||||
- [`Duration::new`][47300]
|
- [`Duration::new`][47300]
|
||||||
- [`Duration::from_secs`][47300]
|
- [`Duration::from_secs`][47300]
|
||||||
- [`Duration::from_millis`][47300]
|
- [`Duration::from_millis`][47300]
|
||||||
- [`Duration::from_micros`][47300]
|
|
||||||
- [`Duration::from_nanos`][47300]
|
|
||||||
|
|
||||||
Cargo
|
Cargo
|
||||||
-----
|
-----
|
||||||
|
|
|
@ -288,6 +288,7 @@ pub fn symlink_dir(src: &Path, dest: &Path) -> io::Result<()> {
|
||||||
nOutBufferSize: DWORD,
|
nOutBufferSize: DWORD,
|
||||||
lpBytesReturned: LPDWORD,
|
lpBytesReturned: LPDWORD,
|
||||||
lpOverlapped: LPOVERLAPPED) -> BOOL;
|
lpOverlapped: LPOVERLAPPED) -> BOOL;
|
||||||
|
fn CloseHandle(hObject: HANDLE) -> BOOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_u16s<S: AsRef<OsStr>>(s: S) -> io::Result<Vec<u16>> {
|
fn to_u16s<S: AsRef<OsStr>>(s: S) -> io::Result<Vec<u16>> {
|
||||||
|
@ -341,11 +342,13 @@ pub fn symlink_dir(src: &Path, dest: &Path) -> io::Result<()> {
|
||||||
&mut ret,
|
&mut ret,
|
||||||
ptr::null_mut());
|
ptr::null_mut());
|
||||||
|
|
||||||
if res == 0 {
|
let out = if res == 0 {
|
||||||
Err(io::Error::last_os_error())
|
Err(io::Error::last_os_error())
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
};
|
||||||
|
CloseHandle(h);
|
||||||
|
out
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -305,7 +305,7 @@ $ rustdoc src/lib.rs -Z unstable-options --themes theme.css
|
||||||
|
|
||||||
Giving this flag to `rustdoc` will make it copy your theme into the generated crate docs and enable
|
Giving this flag to `rustdoc` will make it copy your theme into the generated crate docs and enable
|
||||||
it in the theme selector. Note that `rustdoc` will reject your theme file if it doesn't style
|
it in the theme selector. Note that `rustdoc` will reject your theme file if it doesn't style
|
||||||
everything the "main" theme does. See `--theme-checker` below for details.
|
everything the "light" theme does. See `--theme-checker` below for details.
|
||||||
|
|
||||||
### `--theme-checker`: verify theme CSS for validity
|
### `--theme-checker`: verify theme CSS for validity
|
||||||
|
|
||||||
|
@ -316,7 +316,7 @@ $ rustdoc -Z unstable-options --theme-checker theme.css
|
||||||
```
|
```
|
||||||
|
|
||||||
Before including your theme in crate docs, `rustdoc` will compare all the CSS rules it contains
|
Before including your theme in crate docs, `rustdoc` will compare all the CSS rules it contains
|
||||||
against the "main" theme included by default. Using this flag will allow you to see which rules are
|
against the "light" theme included by default. Using this flag will allow you to see which rules are
|
||||||
missing if `rustdoc` rejects your theme.
|
missing if `rustdoc` rejects your theme.
|
||||||
|
|
||||||
### `--resource-suffix`: modifying the name of CSS/JavaScript in crate docs
|
### `--resource-suffix`: modifying the name of CSS/JavaScript in crate docs
|
||||||
|
@ -330,7 +330,7 @@ $ rustdoc src/lib.rs -Z unstable-options --resource-suffix suf
|
||||||
When rendering docs, `rustdoc` creates several CSS and JavaScript files as part of the output. Since
|
When rendering docs, `rustdoc` creates several CSS and JavaScript files as part of the output. Since
|
||||||
all these files are linked from every page, changing where they are can be cumbersome if you need to
|
all these files are linked from every page, changing where they are can be cumbersome if you need to
|
||||||
specially cache them. This flag will rename all these files in the output to include the suffix in
|
specially cache them. This flag will rename all these files in the output to include the suffix in
|
||||||
the filename. For example, `main.css` would become `main-suf.css` with the above command.
|
the filename. For example, `light.css` would become `light-suf.css` with the above command.
|
||||||
|
|
||||||
### `--display-warnings`: display warnings when documenting or running documentation tests
|
### `--display-warnings`: display warnings when documenting or running documentation tests
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ use core::any::Any;
|
||||||
use core::borrow;
|
use core::borrow;
|
||||||
use core::cmp::Ordering;
|
use core::cmp::Ordering;
|
||||||
use core::fmt;
|
use core::fmt;
|
||||||
use core::hash::{self, Hash, Hasher};
|
use core::hash::{Hash, Hasher};
|
||||||
use core::iter::FusedIterator;
|
use core::iter::FusedIterator;
|
||||||
use core::marker::{self, Unpin, Unsize};
|
use core::marker::{self, Unpin, Unsize};
|
||||||
use core::mem::{self, Pin};
|
use core::mem::{self, Pin};
|
||||||
|
@ -508,7 +508,7 @@ impl<T: ?Sized + Eq> Eq for Box<T> {}
|
||||||
|
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
impl<T: ?Sized + Hash> Hash for Box<T> {
|
impl<T: ?Sized + Hash> Hash for Box<T> {
|
||||||
fn hash<H: hash::Hasher>(&self, state: &mut H) {
|
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||||
(**self).hash(state);
|
(**self).hash(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1599,8 +1599,8 @@ impl_spec_from_elem!(u64, |x| x == 0);
|
||||||
impl_spec_from_elem!(u128, |x| x == 0);
|
impl_spec_from_elem!(u128, |x| x == 0);
|
||||||
impl_spec_from_elem!(usize, |x| x == 0);
|
impl_spec_from_elem!(usize, |x| x == 0);
|
||||||
|
|
||||||
impl_spec_from_elem!(f32, |x: f32| x == 0. && x.is_sign_positive());
|
impl_spec_from_elem!(f32, |x: f32| x.to_bits() == 0);
|
||||||
impl_spec_from_elem!(f64, |x: f64| x == 0. && x.is_sign_positive());
|
impl_spec_from_elem!(f64, |x: f64| x.to_bits() == 0);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Common trait implementations for Vec
|
// Common trait implementations for Vec
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
any(from_method="from_error", from_method="from_ok"),
|
any(from_method="from_error", from_method="from_ok"),
|
||||||
from_desugaring="?"),
|
from_desugaring="?"),
|
||||||
message="the `?` operator can only be used in a \
|
message="the `?` operator can only be used in a \
|
||||||
function that returns `Result` \
|
function that returns `Result` or `Option` \
|
||||||
(or another type that implements `{Try}`)",
|
(or another type that implements `{Try}`)",
|
||||||
label="cannot use the `?` operator in a function that returns `{Self}`"),
|
label="cannot use the `?` operator in a function that returns `{Self}`"),
|
||||||
on(all(from_method="into_result", from_desugaring="?"),
|
on(all(from_method="into_result", from_desugaring="?"),
|
||||||
|
|
|
@ -2653,7 +2653,7 @@ impl<'a, T: ?Sized> From<NonNull<T>> for Unique<T> {
|
||||||
///
|
///
|
||||||
/// Unlike `*mut T`, the pointer must always be non-null, even if the pointer
|
/// Unlike `*mut T`, the pointer must always be non-null, even if the pointer
|
||||||
/// is never dereferenced. This is so that enums may use this forbidden value
|
/// is never dereferenced. This is so that enums may use this forbidden value
|
||||||
/// as a discriminant -- `Option<NonNull<T>>` has the same size as `NonNull<T>`.
|
/// as a discriminant -- `Option<NonNull<T>>` has the same size as `*mut T`.
|
||||||
/// However the pointer may still dangle if it isn't dereferenced.
|
/// However the pointer may still dangle if it isn't dereferenced.
|
||||||
///
|
///
|
||||||
/// Unlike `*mut T`, `NonNull<T>` is covariant over `T`. If this is incorrect
|
/// Unlike `*mut T`, `NonNull<T>` is covariant over `T`. If this is incorrect
|
||||||
|
|
|
@ -53,7 +53,7 @@ r##"<!DOCTYPE html>
|
||||||
id="mainThemeStyle">
|
id="mainThemeStyle">
|
||||||
{themes}
|
{themes}
|
||||||
<link rel="stylesheet" type="text/css" href="{root_path}dark{suffix}.css">
|
<link rel="stylesheet" type="text/css" href="{root_path}dark{suffix}.css">
|
||||||
<link rel="stylesheet" type="text/css" href="{root_path}main{suffix}.css" id="themeStyle">
|
<link rel="stylesheet" type="text/css" href="{root_path}light{suffix}.css" id="themeStyle">
|
||||||
<script src="{root_path}storage{suffix}.js"></script>
|
<script src="{root_path}storage{suffix}.js"></script>
|
||||||
{css_extension}
|
{css_extension}
|
||||||
|
|
||||||
|
|
|
@ -129,8 +129,8 @@ pub struct SharedContext {
|
||||||
pub sort_modules_alphabetically: bool,
|
pub sort_modules_alphabetically: bool,
|
||||||
/// Additional themes to be added to the generated docs.
|
/// Additional themes to be added to the generated docs.
|
||||||
pub themes: Vec<PathBuf>,
|
pub themes: Vec<PathBuf>,
|
||||||
/// Suffix to be added on resource files (if suffix is "-v2" then "main.css" becomes
|
/// Suffix to be added on resource files (if suffix is "-v2" then "light.css" becomes
|
||||||
/// "main-v2.css").
|
/// "light-v2.css").
|
||||||
pub resource_suffix: String,
|
pub resource_suffix: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -743,7 +743,7 @@ fn write_shared(cx: &Context,
|
||||||
write(cx.dst.join(&format!("rustdoc{}.css", cx.shared.resource_suffix)),
|
write(cx.dst.join(&format!("rustdoc{}.css", cx.shared.resource_suffix)),
|
||||||
include_bytes!("static/rustdoc.css"))?;
|
include_bytes!("static/rustdoc.css"))?;
|
||||||
|
|
||||||
// To avoid "main.css" to be overwritten, we'll first run over the received themes and only
|
// To avoid "light.css" to be overwritten, we'll first run over the received themes and only
|
||||||
// then we'll run over the "official" styles.
|
// then we'll run over the "official" styles.
|
||||||
let mut themes: HashSet<String> = HashSet::new();
|
let mut themes: HashSet<String> = HashSet::new();
|
||||||
|
|
||||||
|
@ -761,9 +761,9 @@ fn write_shared(cx: &Context,
|
||||||
|
|
||||||
write(cx.dst.join(&format!("brush{}.svg", cx.shared.resource_suffix)),
|
write(cx.dst.join(&format!("brush{}.svg", cx.shared.resource_suffix)),
|
||||||
include_bytes!("static/brush.svg"))?;
|
include_bytes!("static/brush.svg"))?;
|
||||||
write(cx.dst.join(&format!("main{}.css", cx.shared.resource_suffix)),
|
write(cx.dst.join(&format!("light{}.css", cx.shared.resource_suffix)),
|
||||||
include_bytes!("static/themes/main.css"))?;
|
include_bytes!("static/themes/light.css"))?;
|
||||||
themes.insert("main".to_owned());
|
themes.insert("light".to_owned());
|
||||||
write(cx.dst.join(&format!("dark{}.css", cx.shared.resource_suffix)),
|
write(cx.dst.join(&format!("dark{}.css", cx.shared.resource_suffix)),
|
||||||
include_bytes!("static/themes/dark.css"))?;
|
include_bytes!("static/themes/dark.css"))?;
|
||||||
themes.insert("dark".to_owned());
|
themes.insert("dark".to_owned());
|
||||||
|
|
|
@ -109,7 +109,6 @@ h3.impl, h3.method, h4.method, h3.type, h4.type, h4.associatedconstant {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
h3.impl, h3.method, h3.type {
|
h3.impl, h3.method, h3.type {
|
||||||
margin-top: 15px;
|
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,7 +469,10 @@ h4 > code, h3 > code, .invisible > code {
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content .methods > div:not(.important-traits) { margin-left: 40px; }
|
.content .methods > div:not(.important-traits) {
|
||||||
|
margin-left: 40px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.content .impl-items .docblock, .content .impl-items .stability {
|
.content .impl-items .docblock, .content .impl-items .stability {
|
||||||
margin-bottom: .6em;
|
margin-bottom: .6em;
|
||||||
|
|
|
@ -67,4 +67,4 @@ function switchTheme(styleElem, mainStyleElem, newTheme) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switchTheme(currentTheme, mainTheme, getCurrentValue('rustdoc-theme') || 'main');
|
switchTheme(currentTheme, mainTheme, getCurrentValue('rustdoc-theme') || 'light');
|
||||||
|
|
|
@ -267,8 +267,8 @@ pub fn opts() -> Vec<RustcOptGroup> {
|
||||||
unstable("resource-suffix", |o| {
|
unstable("resource-suffix", |o| {
|
||||||
o.optopt("",
|
o.optopt("",
|
||||||
"resource-suffix",
|
"resource-suffix",
|
||||||
"suffix to add to CSS and JavaScript files, e.g. \"main.css\" will become \
|
"suffix to add to CSS and JavaScript files, e.g. \"light.css\" will become \
|
||||||
\"main-suffix.css\"",
|
\"light-suffix.css\"",
|
||||||
"PATH")
|
"PATH")
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
|
@ -322,7 +322,7 @@ pub fn main_args(args: &[String]) -> isize {
|
||||||
|
|
||||||
let to_check = matches.opt_strs("theme-checker");
|
let to_check = matches.opt_strs("theme-checker");
|
||||||
if !to_check.is_empty() {
|
if !to_check.is_empty() {
|
||||||
let paths = theme::load_css_paths(include_bytes!("html/static/themes/main.css"));
|
let paths = theme::load_css_paths(include_bytes!("html/static/themes/light.css"));
|
||||||
let mut errors = 0;
|
let mut errors = 0;
|
||||||
|
|
||||||
println!("rustdoc: [theme-checker] Starting tests!");
|
println!("rustdoc: [theme-checker] Starting tests!");
|
||||||
|
@ -393,7 +393,7 @@ pub fn main_args(args: &[String]) -> isize {
|
||||||
|
|
||||||
let mut themes = Vec::new();
|
let mut themes = Vec::new();
|
||||||
if matches.opt_present("themes") {
|
if matches.opt_present("themes") {
|
||||||
let paths = theme::load_css_paths(include_bytes!("html/static/themes/main.css"));
|
let paths = theme::load_css_paths(include_bytes!("html/static/themes/light.css"));
|
||||||
|
|
||||||
for (theme_file, theme_s) in matches.opt_strs("themes")
|
for (theme_file, theme_s) in matches.opt_strs("themes")
|
||||||
.iter()
|
.iter()
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
// ignore-mips
|
// ignore-mips
|
||||||
// ignore-mips64
|
// ignore-mips64
|
||||||
// ignore-powerpc
|
// ignore-powerpc
|
||||||
|
// ignore-s390x
|
||||||
// ignore-wasm
|
// ignore-wasm
|
||||||
// ignore-emscripten
|
// ignore-emscripten
|
||||||
// ignore-windows
|
// ignore-windows
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
// ignore-aarch64
|
// ignore-aarch64
|
||||||
// ignore-mips
|
// ignore-mips
|
||||||
// ignore-mips64
|
// ignore-mips64
|
||||||
|
// ignore-powerpc
|
||||||
|
// ignore-s390x
|
||||||
// ignore-wasm
|
// ignore-wasm
|
||||||
// ignore-cloudabi no processes
|
// ignore-cloudabi no processes
|
||||||
// ignore-emscripten no processes
|
// ignore-emscripten no processes
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
// ignore-aarch64
|
// ignore-aarch64
|
||||||
// ignore-mips
|
// ignore-mips
|
||||||
// ignore-mips64
|
// ignore-mips64
|
||||||
|
// ignore-powerpc
|
||||||
|
// ignore-s390x
|
||||||
// ignore-wasm
|
// ignore-wasm
|
||||||
// ignore-cloudabi no processes
|
// ignore-cloudabi no processes
|
||||||
// ignore-emscripten no processes
|
// ignore-emscripten no processes
|
||||||
|
|
|
@ -6,7 +6,7 @@ LL | x?; //~ the trait bound
|
||||||
|
|
|
|
||||||
= note: required by `std::convert::From::from`
|
= note: required by `std::convert::From::from`
|
||||||
|
|
||||||
error[E0277]: the `?` operator can only be used in a function that returns `Result` (or another type that implements `std::ops::Try`)
|
error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
|
||||||
--> $DIR/try-on-option.rs:23:5
|
--> $DIR/try-on-option.rs:23:5
|
||||||
|
|
|
|
||||||
LL | x?; //~ the `?` operator
|
LL | x?; //~ the `?` operator
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
error[E0277]: the `?` operator can only be used in a function that returns `Result` (or another type that implements `std::ops::Try`)
|
error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
|
||||||
--> $DIR/try-operator-on-main.rs:19:5
|
--> $DIR/try-operator-on-main.rs:19:5
|
||||||
|
|
|
|
||||||
LL | std::fs::File::open("foo")?; //~ ERROR the `?` operator can only
|
LL | std::fs::File::open("foo")?; //~ ERROR the `?` operator can only
|
||||||
|
|
|
@ -61,8 +61,8 @@ impl Formatter for HTMLFormatter {
|
||||||
<head>
|
<head>
|
||||||
<title>Rust Compiler Error Index</title>
|
<title>Rust Compiler Error Index</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<!-- Include rust.css after main.css so its rules take priority. -->
|
<!-- Include rust.css after light.css so its rules take priority. -->
|
||||||
<link rel="stylesheet" type="text/css" href="main.css"/>
|
<link rel="stylesheet" type="text/css" href="light.css"/>
|
||||||
<link rel="stylesheet" type="text/css" href="rust.css"/>
|
<link rel="stylesheet" type="text/css" href="rust.css"/>
|
||||||
<style>
|
<style>
|
||||||
.error-undescribed {{
|
.error-undescribed {{
|
||||||
|
|
|
@ -13,7 +13,7 @@ use std::fs::read_dir;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::process::{Command, exit};
|
use std::process::{Command, exit};
|
||||||
|
|
||||||
const FILES_TO_IGNORE: &[&str] = &["main.css"];
|
const FILES_TO_IGNORE: &[&str] = &["light.css"];
|
||||||
|
|
||||||
fn get_folders<P: AsRef<Path>>(folder_path: P) -> Vec<String> {
|
fn get_folders<P: AsRef<Path>>(folder_path: P) -> Vec<String> {
|
||||||
let mut ret = Vec::with_capacity(10);
|
let mut ret = Vec::with_capacity(10);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue