diff options
| author | bors <bors@rust-lang.org> | 2020-10-24 16:12:01 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-24 16:12:01 +0000 |
| commit | 89fdb30892dbe330730ad1a1c1fe45b9046c2973 (patch) | |
| tree | 351f7a2136b66d2a5abfa16a94c969c33fadf24b /src | |
| parent | 2e8a54af60df63034e41359acfc923e5c5769a91 (diff) | |
| parent | 1ac137be93feb476ab14b9d9924c880a53cc3b91 (diff) | |
Auto merge of #78319 - jonas-schievink:rollup-vzj8a6l, r=jonas-schievink
Rollup of 15 pull requests Successful merges: - #76649 (Add a spin loop hint for Arc::downgrade) - #77392 (add `insert` to `Option`) - #77716 (Revert "Allow dynamic linking for iOS/tvOS targets.") - #78109 (Check for exhaustion in RangeInclusive::contains and slicing) - #78198 (Simplify assert terminator only if condition evaluates to expected value) - #78243 (--test-args flag description) - #78249 (improve const infer error) - #78250 (Document inline-const) - #78264 (Add regression test for issue-77475) - #78274 (Update description of Empty Enum for accuracy) - #78278 (move `visit_predicate` into `TypeVisitor`) - #78292 (Loop instead of recursion) - #78293 (Always store Rustdoc theme when it's changed) - #78300 (Make codegen coverage_context optional, and check) - #78307 (Revert "Set .llvmbc and .llvmcmd sections as allocatable") Failed merges: r? `@ghost`
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/flags.rs | 8 | ||||
| -rw-r--r-- | src/doc/unstable-book/src/language-features/inline-const.md | 45 | ||||
| -rw-r--r-- | src/librustdoc/html/static/storage.js | 11 | ||||
| -rw-r--r-- | src/test/ui/const-generics/infer/issue-77092.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/macros/issue-77475.rs | 10 |
5 files changed, 69 insertions, 7 deletions
diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index 22cfd0c5643..3834e50e3fa 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -232,7 +232,13 @@ To learn more about a subcommand, run `./x.py <subcommand> -h`", match subcommand.as_str() { "test" | "t" => { opts.optflag("", "no-fail-fast", "Run all tests regardless of failure"); - opts.optmulti("", "test-args", "extra arguments", "ARGS"); + opts.optmulti( + "", + "test-args", + "extra arguments to be passed for the test tool being used \ + (e.g. libtest, compiletest or rustdoc)", + "ARGS", + ); opts.optmulti( "", "rustc-args", diff --git a/src/doc/unstable-book/src/language-features/inline-const.md b/src/doc/unstable-book/src/language-features/inline-const.md new file mode 100644 index 00000000000..00e1c79ca3f --- /dev/null +++ b/src/doc/unstable-book/src/language-features/inline-const.md @@ -0,0 +1,45 @@ +# `inline_const` + +The tracking issue for this feature is: [#76001] + +------ + +This feature allows you to use inline constant expressions. For example, you can +turn this code: + +```rust +# fn add_one(x: i32) -> i32 { x + 1 } +const MY_COMPUTATION: i32 = 1 + 2 * 3 / 4; + +fn main() { + let x = add_one(MY_COMPUTATION); +} +``` + +into this code: + +```rust +#![feature(inline_const)] + +# fn add_one(x: i32) -> i32 { x + 1 } +fn main() { + let x = add_one(const { 1 + 2 * 3 / 4 }); +} +``` + +You can also use inline constant expressions in patterns: + +```rust +#![feature(inline_const)] + +const fn one() -> i32 { 1 } + +let some_int = 3; +match some_int { + const { 1 + 2 } => println!("Matched 1 + 2"), + const { one() } => println!("Matched const fn returning 1"), + _ => println!("Didn't match anything :("), +} +``` + +[#76001]: https://github.com/rust-lang/rust/issues/76001 diff --git a/src/librustdoc/html/static/storage.js b/src/librustdoc/html/static/storage.js index a027d6845ea..ef734f260af 100644 --- a/src/librustdoc/html/static/storage.js +++ b/src/librustdoc/html/static/storage.js @@ -94,6 +94,12 @@ function switchTheme(styleElem, mainStyleElem, newTheme, saveTheme) { var fullNewTheme = newTheme + resourcesSuffix + ".css"; var newHref = mainStyleElem.href.replace(fullBasicCss, fullNewTheme); + // If this new value comes from a system setting or from the previously + // saved theme, no need to save it. + if (saveTheme === true) { + updateLocalStorage("rustdoc-theme", newTheme); + } + if (styleElem.href === newHref) { return; } @@ -112,11 +118,6 @@ function switchTheme(styleElem, mainStyleElem, newTheme, saveTheme) { }); if (found === true) { styleElem.href = newHref; - // If this new value comes from a system setting or from the previously - // saved theme, no need to save it. - if (saveTheme === true) { - updateLocalStorage("rustdoc-theme", newTheme); - } } } diff --git a/src/test/ui/const-generics/infer/issue-77092.stderr b/src/test/ui/const-generics/infer/issue-77092.stderr index e84ff8baeea..63facbf3b8c 100644 --- a/src/test/ui/const-generics/infer/issue-77092.stderr +++ b/src/test/ui/const-generics/infer/issue-77092.stderr @@ -2,7 +2,7 @@ error[E0282]: type annotations needed --> $DIR/issue-77092.rs:13:26 | LL | println!("{:?}", take_array_from_mut(&mut arr, i)); - | ^^^^^^^^^^^^^^^^^^^ cannot infer the value of the constant `{_: usize}` + | ^^^^^^^^^^^^^^^^^^^ cannot infer the value of const parameter `N` declared on the function `take_array_from_mut` error: aborting due to previous error diff --git a/src/test/ui/macros/issue-77475.rs b/src/test/ui/macros/issue-77475.rs new file mode 100644 index 00000000000..7b32a33ea4f --- /dev/null +++ b/src/test/ui/macros/issue-77475.rs @@ -0,0 +1,10 @@ +// check-pass +// Regression test of #77475, this used to be ICE. + +#![feature(decl_macro)] + +use crate as _; + +pub macro ice(){} + +fn main() {} |
