From 71393422495b8d3c7a6e4ded3e64adaec45dca6d Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 3 Jun 2020 15:15:53 -0400 Subject: [PATCH] Bump to 1.46 --- src/bootstrap/channel.rs | 2 +- src/liballoc/rc.rs | 12 ++---------- src/liballoc/sync.rs | 17 +++-------------- src/libcore/intrinsics.rs | 5 ----- src/libcore/marker.rs | 14 +------------- src/libcore/ops/try.rs | 2 +- src/libcore/panicking.rs | 21 +++------------------ src/libpanic_unwind/seh.rs | 5 +---- src/libstd/panicking.rs | 20 ++++---------------- src/libstd/sync/mpsc/shared.rs | 6 +----- src/libstd/sync/mpsc/sync.rs | 6 +----- src/libstd/sys/cloudabi/mod.rs | 5 +---- src/libstd/sys/windows/mod.rs | 5 +---- src/stage0.txt | 2 +- src/tools/clippy/clippy_lints/src/write.rs | 8 ++++---- 15 files changed, 25 insertions(+), 105 deletions(-) diff --git a/src/bootstrap/channel.rs b/src/bootstrap/channel.rs index f9d3b454246b1..a4115904ac76f 100644 --- a/src/bootstrap/channel.rs +++ b/src/bootstrap/channel.rs @@ -13,7 +13,7 @@ use build_helper::output; use crate::Build; // The version number -pub const CFG_RELEASE_NUM: &str = "1.45.0"; +pub const CFG_RELEASE_NUM: &str = "1.46.0"; pub struct GitInfo { inner: Option, diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index 4edbc2ff3ac9b..925bc7d3c024e 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -2035,11 +2035,7 @@ trait RcBoxPtr { // nevertheless, we insert an abort here to hint LLVM at // an otherwise missed optimization. if strong == 0 || strong == usize::max_value() { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } self.inner().strong.set(strong + 1); } @@ -2063,11 +2059,7 @@ trait RcBoxPtr { // nevertheless, we insert an abort here to hint LLVM at // an otherwise missed optimization. if weak == 0 || weak == usize::max_value() { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } self.inner().weak.set(weak + 1); } diff --git a/src/liballoc/sync.rs b/src/liballoc/sync.rs index 5de3cac9d5382..cd4172d6a2d24 100644 --- a/src/liballoc/sync.rs +++ b/src/liballoc/sync.rs @@ -1093,11 +1093,7 @@ impl Clone for Arc { // We abort because such a program is incredibly degenerate, and we // don't care to support it. if old_size > MAX_REFCOUNT { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } Self::from_inner(self.ptr) @@ -1616,11 +1612,7 @@ impl Weak { // See comments in `Arc::clone` for why we do this (for `mem::forget`). if n > MAX_REFCOUNT { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } // Relaxed is valid for the same reason it is on Arc's Clone impl @@ -1767,10 +1759,7 @@ impl Clone for Weak { // See comments in Arc::clone() for why we do this (for mem::forget). if old_size > MAX_REFCOUNT { - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - abort(); - } + abort(); } Weak { ptr: self.ptr } diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index 2d97fecf8a766..85076a573b528 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -54,7 +54,6 @@ )] #![allow(missing_docs)] -#[cfg(not(bootstrap))] use crate::marker::DiscriminantKind; use crate::mem; @@ -1916,11 +1915,7 @@ extern "rust-intrinsic" { /// The stabilized version of this intrinsic is /// [`std::mem::discriminant`](../../std/mem/fn.discriminant.html) #[rustc_const_unstable(feature = "const_discriminant", issue = "69821")] - #[cfg(not(bootstrap))] pub fn discriminant_value(v: &T) -> ::Discriminant; - #[rustc_const_unstable(feature = "const_discriminant", issue = "69821")] - #[cfg(bootstrap)] - pub fn discriminant_value(v: &T) -> u64; /// Rust's "try catch" construct which invokes the function pointer `try_fn` /// with the data pointer `data`. diff --git a/src/libcore/marker.rs b/src/libcore/marker.rs index c0c0f66aff908..6040dd31847a9 100644 --- a/src/libcore/marker.rs +++ b/src/libcore/marker.rs @@ -692,25 +692,13 @@ mod impls { issue = "none", reason = "this trait is unlikely to ever be stabilized, use `mem::discriminant` instead" )] -#[cfg_attr(not(bootstrap), lang = "discriminant_kind")] +#[lang = "discriminant_kind"] pub trait DiscriminantKind { /// The type of the dicriminant, which must satisfy the trait /// bounds required by `mem::Discriminant`. type Discriminant: Clone + Copy + Debug + Eq + PartialEq + Hash + Send + Sync + Unpin; } -// Manually implement `DiscriminantKind` for all types during bootstrap -// to reduce the required amount of conditional compilation. -#[unstable( - feature = "discriminant_kind", - issue = "none", - reason = "this trait is unlikely to ever be stabilized, use `mem::discriminant` instead" -)] -#[cfg(bootstrap)] -impl DiscriminantKind for T { - type Discriminant = u64; -} - /// Compiler-internal trait used to determine whether a type contains /// any `UnsafeCell` internally, but not through an indirection. /// This affects, for example, whether a `static` of that type is diff --git a/src/libcore/ops/try.rs b/src/libcore/ops/try.rs index e15ea11569f34..9bc35ae1f5c28 100644 --- a/src/libcore/ops/try.rs +++ b/src/libcore/ops/try.rs @@ -25,7 +25,7 @@ ) )] #[doc(alias = "?")] -#[cfg_attr(not(bootstrap), lang = "try")] +#[lang = "try"] pub trait Try { /// The type of this value when viewed as successful. #[unstable(feature = "try_trait", issue = "42327")] diff --git a/src/libcore/panicking.rs b/src/libcore/panicking.rs index 16739b4a1afdf..3ed5e65e11c62 100644 --- a/src/libcore/panicking.rs +++ b/src/libcore/panicking.rs @@ -39,12 +39,7 @@ use crate::panic::{Location, PanicInfo}; #[lang = "panic"] // needed by codegen for panic on overflow and other `Assert` MIR terminators pub fn panic(expr: &str) -> ! { if cfg!(feature = "panic_immediate_abort") { - // remove `unsafe` (and safety comment) on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - // SAFETY: the `abort` intrinsic has no requirements to be called. - unsafe { - super::intrinsics::abort() - } + super::intrinsics::abort() } // Use Arguments::new_v1 instead of format_args!("{}", expr) to potentially @@ -62,12 +57,7 @@ pub fn panic(expr: &str) -> ! { #[lang = "panic_bounds_check"] // needed by codegen for panic on OOB array/slice access fn panic_bounds_check(index: usize, len: usize) -> ! { if cfg!(feature = "panic_immediate_abort") { - // remove `unsafe` (and safety comment) on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - // SAFETY: the `abort` intrinsic has no requirements to be called. - unsafe { - super::intrinsics::abort() - } + super::intrinsics::abort() } panic!("index out of bounds: the len is {} but the index is {}", len, index) @@ -80,12 +70,7 @@ fn panic_bounds_check(index: usize, len: usize) -> ! { #[track_caller] pub fn panic_fmt(fmt: fmt::Arguments<'_>) -> ! { if cfg!(feature = "panic_immediate_abort") { - // remove `unsafe` (and safety comment) on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - // SAFETY: the `abort` intrinsic has no requirements to be called. - unsafe { - super::intrinsics::abort() - } + super::intrinsics::abort() } // NOTE This function never crosses the FFI boundary; it's a Rust-to-Rust call diff --git a/src/libpanic_unwind/seh.rs b/src/libpanic_unwind/seh.rs index b1e87a7cac26a..1f812f8df6122 100644 --- a/src/libpanic_unwind/seh.rs +++ b/src/libpanic_unwind/seh.rs @@ -327,8 +327,5 @@ pub unsafe fn cleanup(payload: *mut u8) -> Box { #[lang = "eh_personality"] #[cfg(not(test))] fn rust_eh_personality() { - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - core::intrinsics::abort() - } + core::intrinsics::abort() } diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs index bf381896a22bb..6a120f930ab15 100644 --- a/src/libstd/panicking.rs +++ b/src/libstd/panicking.rs @@ -332,10 +332,7 @@ pub fn panicking() -> bool { #[cfg_attr(feature = "panic_immediate_abort", inline)] pub fn begin_panic_fmt(msg: &fmt::Arguments<'_>) -> ! { if cfg!(feature = "panic_immediate_abort") { - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - intrinsics::abort() - } + intrinsics::abort() } let info = PanicInfo::internal_constructor(Some(msg), Location::caller()); @@ -401,10 +398,7 @@ pub fn begin_panic_handler(info: &PanicInfo<'_>) -> ! { #[track_caller] pub fn begin_panic(msg: M) -> ! { if cfg!(feature = "panic_immediate_abort") { - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - intrinsics::abort() - } + intrinsics::abort() } rust_panic_with_hook(&mut PanicPayload::new(msg), None, Location::caller()); @@ -464,10 +458,7 @@ fn rust_panic_with_hook( "thread panicked while processing \ panic. aborting.\n" )); - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - intrinsics::abort() - } + intrinsics::abort() } unsafe { @@ -502,10 +493,7 @@ fn rust_panic_with_hook( "thread panicked while panicking. \ aborting.\n" )); - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - intrinsics::abort() - } + intrinsics::abort() } rust_panic(payload) diff --git a/src/libstd/sync/mpsc/shared.rs b/src/libstd/sync/mpsc/shared.rs index d1a46c5175743..898654f21f2ea 100644 --- a/src/libstd/sync/mpsc/shared.rs +++ b/src/libstd/sync/mpsc/shared.rs @@ -354,11 +354,7 @@ impl Packet { // See comments on Arc::clone() on why we do this (for `mem::forget`). if old_count > MAX_REFCOUNT { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } } diff --git a/src/libstd/sync/mpsc/sync.rs b/src/libstd/sync/mpsc/sync.rs index 603764922c5aa..733761671a041 100644 --- a/src/libstd/sync/mpsc/sync.rs +++ b/src/libstd/sync/mpsc/sync.rs @@ -358,11 +358,7 @@ impl Packet { // See comments on Arc::clone() on why we do this (for `mem::forget`). if old_count > MAX_REFCOUNT { - // remove `unsafe` on bootstrap bump - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] - unsafe { - abort(); - } + abort(); } } diff --git a/src/libstd/sys/cloudabi/mod.rs b/src/libstd/sys/cloudabi/mod.rs index dde2b21c9bcff..8dbc31472d637 100644 --- a/src/libstd/sys/cloudabi/mod.rs +++ b/src/libstd/sys/cloudabi/mod.rs @@ -52,10 +52,7 @@ pub fn decode_error_kind(errno: i32) -> ErrorKind { } pub fn abort_internal() -> ! { - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - core::intrinsics::abort(); - } + core::intrinsics::abort(); } pub use libc::strlen; diff --git a/src/libstd/sys/windows/mod.rs b/src/libstd/sys/windows/mod.rs index 4098c6b3ee937..69877e68ba8fe 100644 --- a/src/libstd/sys/windows/mod.rs +++ b/src/libstd/sys/windows/mod.rs @@ -314,8 +314,5 @@ pub fn abort_internal() -> ! { llvm_asm!("int $$0x29" :: "{ecx}"(7) ::: volatile); // 7 is FAST_FAIL_FATAL_APP_EXIT crate::intrinsics::unreachable(); } - #[cfg_attr(not(bootstrap), allow(unused_unsafe))] // remove `unsafe` on bootstrap bump - unsafe { - crate::intrinsics::abort(); - } + crate::intrinsics::abort(); } diff --git a/src/stage0.txt b/src/stage0.txt index 150d7a0943db0..5e840b9db1994 100644 --- a/src/stage0.txt +++ b/src/stage0.txt @@ -12,7 +12,7 @@ # source tarball for a stable release you'll likely see `1.x.0` for rustc and # `0.(x+1).0` for Cargo where they were released on `date`. -date: 2020-04-22 +date: 2020-06-03 rustc: beta cargo: beta diff --git a/src/tools/clippy/clippy_lints/src/write.rs b/src/tools/clippy/clippy_lints/src/write.rs index dfa6223f1b9dd..37fbc2bad468f 100644 --- a/src/tools/clippy/clippy_lints/src/write.rs +++ b/src/tools/clippy/clippy_lints/src/write.rs @@ -279,13 +279,13 @@ impl EarlyLintPass for Write { if let (Some(fmt_str), expr) = self.check_tts(cx, &mac.args.inner_tokens(), true) { if fmt_str.symbol == Symbol::intern("") { let mut applicability = Applicability::MachineApplicable; - let suggestion = expr.map_or_else( - move || { + let suggestion = match expr { + Some(expr) => snippet_with_applicability(cx, expr.span, "v", &mut applicability), + None => { applicability = Applicability::HasPlaceholders; Cow::Borrowed("v") }, - move |expr| snippet_with_applicability(cx, expr.span, "v", &mut applicability), - ); + }; span_lint_and_sugg( cx,