Bump to 1.46
This commit is contained in:
parent
6f48888456
commit
7139342249
@ -13,7 +13,7 @@
|
||||
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<Info>,
|
||||
|
@ -2035,11 +2035,7 @@ fn inc_strong(&self) {
|
||||
// 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 @@ fn inc_weak(&self) {
|
||||
// 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);
|
||||
}
|
||||
|
@ -1093,11 +1093,7 @@ fn clone(&self) -> Arc<T> {
|
||||
// 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 @@ pub fn upgrade(&self) -> Option<Arc<T>> {
|
||||
|
||||
// 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 @@ fn clone(&self) -> Weak<T> {
|
||||
|
||||
// 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 }
|
||||
|
@ -54,7 +54,6 @@
|
||||
)]
|
||||
#![allow(missing_docs)]
|
||||
|
||||
#[cfg(not(bootstrap))]
|
||||
use crate::marker::DiscriminantKind;
|
||||
use crate::mem;
|
||||
|
||||
@ -1916,11 +1915,7 @@
|
||||
/// 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<T>(v: &T) -> <T as DiscriminantKind>::Discriminant;
|
||||
#[rustc_const_unstable(feature = "const_discriminant", issue = "69821")]
|
||||
#[cfg(bootstrap)]
|
||||
pub fn discriminant_value<T>(v: &T) -> u64;
|
||||
|
||||
/// Rust's "try catch" construct which invokes the function pointer `try_fn`
|
||||
/// with the data pointer `data`.
|
||||
|
@ -692,25 +692,13 @@ unsafe impl<T: Send + ?Sized> Send for &mut T {}
|
||||
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<T: ?Sized> 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
|
||||
|
@ -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")]
|
||||
|
@ -39,12 +39,7 @@
|
||||
#[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
|
||||
|
@ -327,8 +327,5 @@ pub unsafe fn cleanup(payload: *mut u8) -> Box<dyn Any + Send> {
|
||||
#[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()
|
||||
}
|
||||
|
@ -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 @@ fn get(&mut self) -> &(dyn Any + Send) {
|
||||
#[track_caller]
|
||||
pub fn begin_panic<M: Any + Send>(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)
|
||||
|
@ -354,11 +354,7 @@ pub fn clone_chan(&self) {
|
||||
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -358,11 +358,7 @@ pub fn clone_chan(&self) {
|
||||
|
||||
// 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -279,13 +279,13 @@ fn check_mac(&mut self, cx: &EarlyContext<'_>, mac: &MacCall) {
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user