From 416caa10ed055e8f059bb2fe3d3dd67c063dfe6c Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 4 Aug 2019 20:20:12 +0900 Subject: [PATCH 01/14] Add test for issue-29265 --- src/test/ui/issues/auxiliary/issue-29265.rs | 9 +++++++++ src/test/ui/issues/issue-29265.rs | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/test/ui/issues/auxiliary/issue-29265.rs create mode 100644 src/test/ui/issues/issue-29265.rs diff --git a/src/test/ui/issues/auxiliary/issue-29265.rs b/src/test/ui/issues/auxiliary/issue-29265.rs new file mode 100644 index 0000000000000..6d26002a2e707 --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-29265.rs @@ -0,0 +1,9 @@ +#![crate_type = "lib"] + +pub struct SomeType { + pub some_member: usize, +} + +pub static SOME_VALUE: SomeType = SomeType { + some_member: 1, +}; diff --git a/src/test/ui/issues/issue-29265.rs b/src/test/ui/issues/issue-29265.rs new file mode 100644 index 0000000000000..f554c4d16c7d1 --- /dev/null +++ b/src/test/ui/issues/issue-29265.rs @@ -0,0 +1,10 @@ +// aux-build:issue-29265.rs +// check-pass + +extern crate issue_29265 as lib; + +static _UNUSED: &'static lib::SomeType = &lib::SOME_VALUE; + +fn main() { + vec![0u8; lib::SOME_VALUE.some_member]; +} From 620567d87ed578587cbbc6bad851576507283544 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 4 Aug 2019 20:20:40 +0900 Subject: [PATCH 02/14] Add test for issue-49544 --- src/test/ui/issues/auxiliary/issue-49544.rs | 7 +++++++ src/test/ui/issues/issue-49544.rs | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/test/ui/issues/auxiliary/issue-49544.rs create mode 100644 src/test/ui/issues/issue-49544.rs diff --git a/src/test/ui/issues/auxiliary/issue-49544.rs b/src/test/ui/issues/auxiliary/issue-49544.rs new file mode 100644 index 0000000000000..f8b3a3fba1e4a --- /dev/null +++ b/src/test/ui/issues/auxiliary/issue-49544.rs @@ -0,0 +1,7 @@ +#![crate_type = "lib"] + +pub fn foo() -> Vec { + std::env::args() + .skip(1) + .collect() +} diff --git a/src/test/ui/issues/issue-49544.rs b/src/test/ui/issues/issue-49544.rs new file mode 100644 index 0000000000000..ed356275fc135 --- /dev/null +++ b/src/test/ui/issues/issue-49544.rs @@ -0,0 +1,9 @@ +// aux-build:issue-49544.rs +// check-pass + +extern crate issue_49544; +use issue_49544::foo; + +fn main() { + let _ = foo(); +} From 92e4e8e7836e5a505dc466039135b75252e5b1f6 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 4 Aug 2019 21:22:42 +0900 Subject: [PATCH 03/14] Add test for issue-37433 --- src/test/ui/issues/issue-37433.rs | 8 ++++++++ src/test/ui/issues/issue-37433.stderr | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/test/ui/issues/issue-37433.rs create mode 100644 src/test/ui/issues/issue-37433.stderr diff --git a/src/test/ui/issues/issue-37433.rs b/src/test/ui/issues/issue-37433.rs new file mode 100644 index 0000000000000..784e6ccdac089 --- /dev/null +++ b/src/test/ui/issues/issue-37433.rs @@ -0,0 +1,8 @@ +#![feature(asm)] + +fn main() { + unsafe { + asm!("" :: "r"("")); + //~^ ERROR: invalid value for constraint in inline assembly + } +} diff --git a/src/test/ui/issues/issue-37433.stderr b/src/test/ui/issues/issue-37433.stderr new file mode 100644 index 0000000000000..af64193330198 --- /dev/null +++ b/src/test/ui/issues/issue-37433.stderr @@ -0,0 +1,8 @@ +error[E0669]: invalid value for constraint in inline assembly + --> $DIR/issue-37433.rs:5:24 + | +LL | asm!("" :: "r"("")); + | ^^ + +error: aborting due to previous error + From 5b78e98a372c323c2dfa5a19bc110f1c81415f8e Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 19 Apr 2019 09:37:33 +0200 Subject: [PATCH 04/14] bump rand to fix Miri failures --- Cargo.lock | 13 +++++++++++-- src/liballoc/Cargo.toml | 4 ++-- src/liballoc/benches/slice.rs | 8 ++++---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 972276bb38149..ac6849c75499d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,8 +19,8 @@ version = "0.0.0" dependencies = [ "compiler_builtins 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", "core 0.0.0", - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2343,6 +2343,14 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_xorshift" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rayon" version = "1.1.0" @@ -4569,6 +4577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" +"checksum rand_xorshift 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" "checksum rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4" "checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" diff --git a/src/liballoc/Cargo.toml b/src/liballoc/Cargo.toml index bcb27bb5161e2..d1119f7b7c0a7 100644 --- a/src/liballoc/Cargo.toml +++ b/src/liballoc/Cargo.toml @@ -15,8 +15,8 @@ core = { path = "../libcore" } compiler_builtins = { version = "0.1.10", features = ['rustc-dep-of-std'] } [dev-dependencies] -rand = "0.6" -rand_xorshift = "0.1" +rand = "0.7" +rand_xorshift = "0.2" [[test]] name = "collectionstests" diff --git a/src/liballoc/benches/slice.rs b/src/liballoc/benches/slice.rs index f17fb8212ce19..ef91d801dc72c 100644 --- a/src/liballoc/benches/slice.rs +++ b/src/liballoc/benches/slice.rs @@ -186,12 +186,12 @@ const SEED: [u8; 16] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; fn gen_random(len: usize) -> Vec { let mut rng = XorShiftRng::from_seed(SEED); - rng.sample_iter(&Standard).take(len).collect() + (&mut rng).sample_iter(&Standard).take(len).collect() } fn gen_random_bytes(len: usize) -> Vec { let mut rng = XorShiftRng::from_seed(SEED); - rng.sample_iter(&Standard).take(len).collect() + (&mut rng).sample_iter(&Standard).take(len).collect() } fn gen_mostly_ascending(len: usize) -> Vec { @@ -221,14 +221,14 @@ fn gen_strings(len: usize) -> Vec { let mut v = vec![]; for _ in 0..len { let n = rng.gen::() % 20 + 1; - v.push(rng.sample_iter(&Alphanumeric).take(n).collect()); + v.push((&mut rng).sample_iter(&Alphanumeric).take(n).collect()); } v } fn gen_big_random(len: usize) -> Vec<[u64; 16]> { let mut rng = XorShiftRng::from_seed(SEED); - rng.sample_iter(&Standard).map(|x| [x; 16]).take(len).collect() + (&mut rng).sample_iter(&Standard).map(|x| [x; 16]).take(len).collect() } macro_rules! sort { From 0cb16f7d5ebf0ef71e55d1b7f8a809f8d3d87de2 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 4 Aug 2019 14:27:48 +0200 Subject: [PATCH 05/14] bump libcore tests to rand 0.7 --- Cargo.lock | 2 +- src/libcore/Cargo.toml | 2 +- src/libcore/tests/num/flt2dec/random.rs | 8 ++++---- src/libcore/tests/slice.rs | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac6849c75499d..797a0a5fe840d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -514,7 +514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "core" version = "0.0.0" dependencies = [ - "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/src/libcore/Cargo.toml b/src/libcore/Cargo.toml index ede5fff5f4a0e..ac07ffb14febd 100644 --- a/src/libcore/Cargo.toml +++ b/src/libcore/Cargo.toml @@ -21,7 +21,7 @@ name = "corebenches" path = "../libcore/benches/lib.rs" [dev-dependencies] -rand = "0.6" +rand = "0.7" [features] # Make panics and failed asserts immediately abort without formatting any message diff --git a/src/libcore/tests/num/flt2dec/random.rs b/src/libcore/tests/num/flt2dec/random.rs index 35e3fbcbb7870..d56787b2819a7 100644 --- a/src/libcore/tests/num/flt2dec/random.rs +++ b/src/libcore/tests/num/flt2dec/random.rs @@ -8,8 +8,8 @@ use core::num::flt2dec::strategy::grisu::format_exact_opt; use core::num::flt2dec::strategy::grisu::format_shortest_opt; use core::num::flt2dec::{decode, DecodableFloat, FullDecoded, Decoded}; -use rand::FromEntropy; -use rand::rngs::SmallRng; +use rand::SeedableRng; +use rand::rngs::StdRng; use rand::distributions::{Distribution, Uniform}; pub fn decode_finite(v: T) -> Decoded { @@ -65,7 +65,7 @@ pub fn f32_random_equivalence_test(f: F, g: G, k: usize, n: usize) if cfg!(target_os = "emscripten") { return // using rng pulls in i128 support, which doesn't work } - let mut rng = SmallRng::from_entropy(); + let mut rng = StdRng::from_entropy(); let f32_range = Uniform::new(0x0000_0001u32, 0x7f80_0000); iterate("f32_random_equivalence_test", k, n, f, g, |_| { let x = f32::from_bits(f32_range.sample(&mut rng)); @@ -79,7 +79,7 @@ pub fn f64_random_equivalence_test(f: F, g: G, k: usize, n: usize) if cfg!(target_os = "emscripten") { return // using rng pulls in i128 support, which doesn't work } - let mut rng = SmallRng::from_entropy(); + let mut rng = StdRng::from_entropy(); let f64_range = Uniform::new(0x0000_0000_0000_0001u64, 0x7ff0_0000_0000_0000); iterate("f64_random_equivalence_test", k, n, f, g, |_| { let x = f64::from_bits(f64_range.sample(&mut rng)); diff --git a/src/libcore/tests/slice.rs b/src/libcore/tests/slice.rs index b046c3ce5ce6a..04ad02766616d 100644 --- a/src/libcore/tests/slice.rs +++ b/src/libcore/tests/slice.rs @@ -1157,7 +1157,7 @@ fn test_rotate_right() { fn sort_unstable() { use core::cmp::Ordering::{Equal, Greater, Less}; use core::slice::heapsort; - use rand::{FromEntropy, Rng, rngs::SmallRng, seq::SliceRandom}; + use rand::{SeedableRng, Rng, rngs::StdRng, seq::SliceRandom}; #[cfg(not(miri))] // Miri is too slow let large_range = 500..510; @@ -1171,7 +1171,7 @@ fn sort_unstable() { let mut v = [0; 600]; let mut tmp = [0; 600]; - let mut rng = SmallRng::from_entropy(); + let mut rng = StdRng::from_entropy(); for len in (2..25).chain(large_range) { let v = &mut v[0..len]; @@ -1237,11 +1237,11 @@ fn sort_unstable() { #[cfg(not(miri))] // Miri is too slow fn partition_at_index() { use core::cmp::Ordering::{Equal, Greater, Less}; - use rand::rngs::SmallRng; + use rand::rngs::StdRng; use rand::seq::SliceRandom; - use rand::{FromEntropy, Rng}; + use rand::{SeedableRng, Rng}; - let mut rng = SmallRng::from_entropy(); + let mut rng = StdRng::from_entropy(); for len in (2..21).chain(500..501) { let mut orig = vec![0; len]; From ebc36001c0b23689839e6a11c493f8c261d344da Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 26 Jul 2019 00:20:28 +0200 Subject: [PATCH 06/14] Add test for #43398 Closes #43398 --- src/test/ui/issues/issue-43398.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/test/ui/issues/issue-43398.rs diff --git a/src/test/ui/issues/issue-43398.rs b/src/test/ui/issues/issue-43398.rs new file mode 100644 index 0000000000000..ae52e8f3f6b43 --- /dev/null +++ b/src/test/ui/issues/issue-43398.rs @@ -0,0 +1,15 @@ +// run-pass + +#![feature(core_intrinsics)] +#![feature(repr128)] + +#[repr(i128)] +enum Big { A, B } + +fn main() { + unsafe { + println!("{} {:?}", + std::intrinsics::discriminant_value(&Big::A), + std::mem::discriminant(&Big::B)); + } +} From 39185dd398644a184989c75e7cb34ab62cb871eb Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Mon, 5 Aug 2019 11:23:06 +0200 Subject: [PATCH 07/14] update getrandom --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 797a0a5fe840d..3eb3c498ea4e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1050,7 +1050,7 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2246,7 +2246,7 @@ name = "rand" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2286,7 +2286,7 @@ name = "rand_core" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4446,7 +4446,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fwdansi 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "34dd4c507af68d37ffef962063dfa1944ce0dd4d5b82043dbab1dabe088610c3" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" "checksum getopts 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)" = "72327b15c228bfe31f1390f93dd5e9279587f0463836393c9df719ce62a3e450" -"checksum getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8e190892c840661957ba9f32dacfb3eb405e657f9f9f60485605f0bb37d6f8" +"checksum getrandom 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "34f33de6f0ae7c9cb5e574502a562e2b512799e32abb801cd1e79ad952b62b49" "checksum git2 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8cb400360e8a4d61b10e648285bbfa919bbf9519d0d5d5720354456f44349226" "checksum git2-curl 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2293de73491c3dc4174c5949ef53d2cc037b27613f88d72032e3f5237247a7dd" "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" From 418bf968f07f4d099a7536bd5f6ce0cb90709820 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 6 Aug 2019 20:05:22 +0900 Subject: [PATCH 08/14] Ignore no support targets --- src/test/ui/issues/issue-37433.rs | 2 ++ src/test/ui/issues/issue-37433.stderr | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/ui/issues/issue-37433.rs b/src/test/ui/issues/issue-37433.rs index 784e6ccdac089..d3663e24e60a2 100644 --- a/src/test/ui/issues/issue-37433.rs +++ b/src/test/ui/issues/issue-37433.rs @@ -1,3 +1,5 @@ +// ignore-emscripten no asm! support + #![feature(asm)] fn main() { diff --git a/src/test/ui/issues/issue-37433.stderr b/src/test/ui/issues/issue-37433.stderr index af64193330198..eec0446902595 100644 --- a/src/test/ui/issues/issue-37433.stderr +++ b/src/test/ui/issues/issue-37433.stderr @@ -1,5 +1,5 @@ error[E0669]: invalid value for constraint in inline assembly - --> $DIR/issue-37433.rs:5:24 + --> $DIR/issue-37433.rs:7:24 | LL | asm!("" :: "r"("")); | ^^ From 031cc323f5a0aded283977a38e90bab9bfd21357 Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Tue, 6 Aug 2019 13:32:08 +0000 Subject: [PATCH 09/14] doc: Reword deprecation message of MetadataExt::as_raw_stat --- src/libstd/os/linux/fs.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libstd/os/linux/fs.rs b/src/libstd/os/linux/fs.rs index ec5e98370768d..78321ac3185df 100644 --- a/src/libstd/os/linux/fs.rs +++ b/src/libstd/os/linux/fs.rs @@ -34,9 +34,10 @@ pub trait MetadataExt { /// } /// ``` #[stable(feature = "metadata_ext", since = "1.1.0")] - #[rustc_deprecated(since = "1.8.0", - reason = "deprecated in favor of the accessor \ - methods of this trait")] + #[rustc_deprecated( + since = "1.8.0", + reason = "other methods of this trait are now prefered" + )] #[allow(deprecated)] fn as_raw_stat(&self) -> &raw::stat; From 70374c95f9f0a723f2560b8c8aee3b94d99ac36b Mon Sep 17 00:00:00 2001 From: Mark Mansi Date: Tue, 6 Aug 2019 13:53:51 -0500 Subject: [PATCH 10/14] update to rustc-guide that passes toolstate --- src/doc/rustc-guide | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/rustc-guide b/src/doc/rustc-guide index b5a2b9353c661..07dbcdec1888b 160000 --- a/src/doc/rustc-guide +++ b/src/doc/rustc-guide @@ -1 +1 @@ -Subproject commit b5a2b9353c661000378415ecfeb757eb7df42d66 +Subproject commit 07dbcdec1888b2a5e9e78f4828c52417c49e0398 From a411eaf0c85624be11209ee2f96aae3db5eafda9 Mon Sep 17 00:00:00 2001 From: Mark Mansi Date: Tue, 6 Aug 2019 17:19:01 -0500 Subject: [PATCH 11/14] passify tidy --- src/doc/rustc-guide | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/rustc-guide b/src/doc/rustc-guide index 07dbcdec1888b..6f4ba673ff9d4 160000 --- a/src/doc/rustc-guide +++ b/src/doc/rustc-guide @@ -1 +1 @@ -Subproject commit 07dbcdec1888b2a5e9e78f4828c52417c49e0398 +Subproject commit 6f4ba673ff9d4613e98415bc095347a6a0031e9c From 811c3040299beb2cc90dc143b90af32dc78b0a3a Mon Sep 17 00:00:00 2001 From: Ryan Gorup Date: Tue, 6 Aug 2019 09:54:30 -0700 Subject: [PATCH 12/14] Test conditional initialization validation in async fns --- ...onditional-and-guaranteed-initialization.rs | 18 ++++++++++++++++++ .../no-non-guaranteed-initialization.rs | 16 ++++++++++++++++ .../no-non-guaranteed-initialization.stderr | 9 +++++++++ 3 files changed, 43 insertions(+) create mode 100644 src/test/ui/async-await/conditional-and-guaranteed-initialization.rs create mode 100644 src/test/ui/async-await/no-non-guaranteed-initialization.rs create mode 100644 src/test/ui/async-await/no-non-guaranteed-initialization.stderr diff --git a/src/test/ui/async-await/conditional-and-guaranteed-initialization.rs b/src/test/ui/async-await/conditional-and-guaranteed-initialization.rs new file mode 100644 index 0000000000000..a5947e7f71870 --- /dev/null +++ b/src/test/ui/async-await/conditional-and-guaranteed-initialization.rs @@ -0,0 +1,18 @@ +// check-pass +// edition:2018 +// compile-flags: --crate-type lib + +#![feature(async_await)] + +async fn conditional_and_guaranteed_initialization(x: usize) -> usize { + let y; + if x > 5 { + y = echo(10).await; + } else { + y = get_something().await; + } + y +} + +async fn echo(x: usize) -> usize { x } +async fn get_something() -> usize { 10 } diff --git a/src/test/ui/async-await/no-non-guaranteed-initialization.rs b/src/test/ui/async-await/no-non-guaranteed-initialization.rs new file mode 100644 index 0000000000000..a916afb6b09b7 --- /dev/null +++ b/src/test/ui/async-await/no-non-guaranteed-initialization.rs @@ -0,0 +1,16 @@ +// compile-fail +// edition:2018 +// compile-flags: --crate-type lib + +#![feature(async_await)] + +async fn no_non_guaranteed_initialization(x: usize) -> usize { + let y; + if x > 5 { + y = echo(10).await; + } + y + //~^ use of possibly uninitialized variable: `y` +} + +async fn echo(x: usize) -> usize { x + 1 } diff --git a/src/test/ui/async-await/no-non-guaranteed-initialization.stderr b/src/test/ui/async-await/no-non-guaranteed-initialization.stderr new file mode 100644 index 0000000000000..fb94522cac08d --- /dev/null +++ b/src/test/ui/async-await/no-non-guaranteed-initialization.stderr @@ -0,0 +1,9 @@ +error[E0381]: use of possibly uninitialized variable: `y` + --> $DIR/no-non-guaranteed-initialization.rs:12:5 + | +LL | y + | ^ use of possibly uninitialized `y` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0381`. From 7568fbd7fab458db7a17726a10e18a54514d11ea Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Wed, 7 Aug 2019 09:44:12 -0700 Subject: [PATCH 13/14] Update books --- src/doc/edition-guide | 2 +- src/doc/embedded-book | 2 +- src/doc/nomicon | 2 +- src/doc/reference | 2 +- src/doc/rust-by-example | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/doc/edition-guide b/src/doc/edition-guide index f6c8b92d4e63e..e58bc4ca104e8 160000 --- a/src/doc/edition-guide +++ b/src/doc/edition-guide @@ -1 +1 @@ -Subproject commit f6c8b92d4e63edd28e862be952f33861f35956f8 +Subproject commit e58bc4ca104e890ac56af846877c874c432a64b5 diff --git a/src/doc/embedded-book b/src/doc/embedded-book index ff334e74fdb9f..c5da1e11915d3 160000 --- a/src/doc/embedded-book +++ b/src/doc/embedded-book @@ -1 +1 @@ -Subproject commit ff334e74fdb9f197e621efa6d7c3105be892e888 +Subproject commit c5da1e11915d3f28266168baaf55822f7e3fe999 diff --git a/src/doc/nomicon b/src/doc/nomicon index b7f0aba2f88a8..8a7d05615e5bc 160000 --- a/src/doc/nomicon +++ b/src/doc/nomicon @@ -1 +1 @@ -Subproject commit b7f0aba2f88a8feade70595efcfa3438e54e96c0 +Subproject commit 8a7d05615e5bc0a7fb961b4919c44f5221ee54da diff --git a/src/doc/reference b/src/doc/reference index 8e7d614303b0d..b4b3536839042 160000 --- a/src/doc/reference +++ b/src/doc/reference @@ -1 +1 @@ -Subproject commit 8e7d614303b0dec7492e048e63855fcd3b944ec8 +Subproject commit b4b3536839042a6743fc76f0d9ad2a812020aeaa diff --git a/src/doc/rust-by-example b/src/doc/rust-by-example index e3679e214d8db..f2c15ba5ee89a 160000 --- a/src/doc/rust-by-example +++ b/src/doc/rust-by-example @@ -1 +1 @@ -Subproject commit e3679e214d8db44586aca9b20aa27517007d1923 +Subproject commit f2c15ba5ee89ae9469a2cf60494977749901d764 From c03077b23accd0a5b074e298538bb0557b0be9da Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 7 Aug 2019 14:51:49 -0700 Subject: [PATCH 14/14] Use consistent capitalization in -C/-Z help --- src/librustc/session/config.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index 748d2a4824953..3536b2aa8fffe 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -1155,7 +1155,7 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, passes: Vec = (Vec::new(), parse_list, [TRACKED], "a list of extra LLVM passes to run (space separated)"), llvm_args: Vec = (Vec::new(), parse_list, [TRACKED], - "a list of arguments to pass to llvm (space separated)"), + "a list of arguments to pass to LLVM (space separated)"), save_temps: bool = (false, parse_bool, [UNTRACKED], "save all temporary output files during compilation"), rpath: bool = (false, parse_bool, [UNTRACKED], @@ -1208,7 +1208,7 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, default_linker_libraries: Option = (None, parse_opt_bool, [UNTRACKED], "allow the linker to link its default libraries"), linker_flavor: Option = (None, parse_linker_flavor, [UNTRACKED], - "Linker flavor"), + "linker flavor"), linker_plugin_lto: LinkerPluginLto = (LinkerPluginLto::Disabled, parse_linker_plugin_lto, [TRACKED], "generate build artifacts that are compatible with linker-based LTO."), @@ -1255,7 +1255,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, print_link_args: bool = (false, parse_bool, [UNTRACKED], "print the arguments passed to the linker"), print_llvm_passes: bool = (false, parse_bool, [UNTRACKED], - "prints the llvm optimization passes being run"), + "prints the LLVM optimization passes being run"), ast_json: bool = (false, parse_bool, [UNTRACKED], "print the AST as JSON and halt"), threads: Option = (None, parse_opt_uint, [UNTRACKED], @@ -1375,11 +1375,11 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, osx_rpath_install_name: bool = (false, parse_bool, [TRACKED], "pass `-install_name @rpath/...` to the macOS linker"), sanitizer: Option = (None, parse_sanitizer, [TRACKED], - "Use a sanitizer"), + "use a sanitizer"), fuel: Option<(String, u64)> = (None, parse_optimization_fuel, [TRACKED], "set the optimization fuel quota for a crate"), print_fuel: Option = (None, parse_opt_string, [TRACKED], - "make Rustc print the total optimization fuel used by a crate"), + "make rustc print the total optimization fuel used by a crate"), force_unstable_if_unmarked: bool = (false, parse_bool, [TRACKED], "force all crates to be `rustc_private` unstable"), pre_link_arg: Vec = (vec![], parse_string_push, [UNTRACKED], @@ -1417,7 +1417,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, "in dep-info output, omit targets for tracking dependencies of the dep-info files \ themselves"), unpretty: Option = (None, parse_unpretty, [UNTRACKED], - "Present the input source, unstable (and less-pretty) variants; + "present the input source, unstable (and less-pretty) variants; valid types are any of the types for `--pretty`, as well as: `expanded`, `expanded,identified`, `expanded,hygiene` (with internal representations),