mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 15:32:06 +00:00
Auto merge of #77682 - Mark-Simulacrum:bump-stage0, r=pietroalbini
Bump to 1.48 bootstrap compiler r? `@pietroalbini` (but anyone can feel free to review)
This commit is contained in:
commit
f1dab244d7
@ -1072,7 +1072,7 @@ extern "rust-intrinsic" {
|
||||
// NOTE: While this makes the intrinsic const stable, we have some custom code in const fn
|
||||
// checks that prevent its use within `const fn`.
|
||||
#[rustc_const_stable(feature = "const_transmute", since = "1.46.0")]
|
||||
#[cfg_attr(not(bootstrap), rustc_diagnostic_item = "transmute")]
|
||||
#[rustc_diagnostic_item = "transmute"]
|
||||
pub fn transmute<T, U>(e: T) -> U;
|
||||
|
||||
/// Returns `true` if the actual type given as `T` requires drop
|
||||
|
@ -84,8 +84,8 @@
|
||||
#![feature(const_fn_union)]
|
||||
#![feature(const_assume)]
|
||||
#![cfg_attr(not(bootstrap), feature(const_impl_trait))]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_floating_point_arithmetic))]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_fn_ptr_basics))]
|
||||
#![feature(const_fn_floating_point_arithmetic)]
|
||||
#![feature(const_fn_fn_ptr_basics)]
|
||||
#![feature(const_generics)]
|
||||
#![feature(const_option)]
|
||||
#![feature(const_precise_live_drops)]
|
||||
@ -133,7 +133,6 @@
|
||||
#![feature(untagged_unions)]
|
||||
#![feature(unwind_attributes)]
|
||||
#![feature(variant_count)]
|
||||
#![cfg_attr(bootstrap, feature(doc_alias))]
|
||||
#![feature(tbm_target_feature)]
|
||||
#![feature(sse4a_target_feature)]
|
||||
#![feature(arm_target_feature)]
|
||||
|
@ -79,7 +79,6 @@ pub use index::check_range;
|
||||
#[lang = "slice"]
|
||||
#[cfg(not(test))]
|
||||
impl<T> [T] {
|
||||
#[cfg(not(bootstrap))] // Unused in bootstrap
|
||||
/// The maximum, inclusive, length such that the slice is no larger than `isize::MAX` bytes.
|
||||
/// This constant is used in `len` below.
|
||||
const MAX_LEN_BOUND: usize = {
|
||||
@ -108,15 +107,12 @@ impl<T> [T] {
|
||||
// Only `std` can make this guarantee.
|
||||
let raw_len = unsafe { crate::ptr::Repr { rust: self }.raw.len };
|
||||
|
||||
#[cfg(not(bootstrap))] // FIXME: executing assume in const eval not supported in bootstrap
|
||||
// SAFETY: this assume asserts that `raw_len * size_of::<T>() <= isize::MAX`. All
|
||||
// references must point to one allocation with size at most isize::MAX. Note that we the
|
||||
// multiplication could appear to overflow until we have assumed the bound. This overflow
|
||||
// would make additional values appear 'valid' and then `n > 1` the range of permissible
|
||||
// length would no longer be the full or even a single range.
|
||||
unsafe {
|
||||
crate::intrinsics::assume(raw_len <= Self::MAX_LEN_BOUND)
|
||||
};
|
||||
unsafe { crate::intrinsics::assume(raw_len <= Self::MAX_LEN_BOUND) };
|
||||
|
||||
raw_len
|
||||
}
|
||||
|
@ -130,8 +130,7 @@ impl RawWakerVTable {
|
||||
#[rustc_promotable]
|
||||
#[stable(feature = "futures_api", since = "1.36.0")]
|
||||
#[rustc_const_stable(feature = "futures_api", since = "1.36.0")]
|
||||
#[cfg_attr(not(bootstrap), allow_internal_unstable(const_fn_fn_ptr_basics))]
|
||||
#[cfg_attr(bootstrap, rustc_allow_const_fn_ptr)]
|
||||
#[allow_internal_unstable(const_fn_fn_ptr_basics)]
|
||||
pub const fn new(
|
||||
clone: unsafe fn(*const ()) -> RawWaker,
|
||||
wake: unsafe fn(*const ()),
|
||||
|
@ -21,7 +21,7 @@
|
||||
#![feature(nll)]
|
||||
#![feature(staged_api)]
|
||||
#![feature(const_fn)]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_fn_ptr_basics))]
|
||||
#![feature(const_fn_fn_ptr_basics)]
|
||||
#![feature(allow_internal_unstable)]
|
||||
#![feature(decl_macro)]
|
||||
#![feature(extern_types)]
|
||||
|
@ -237,10 +237,10 @@
|
||||
#![feature(clamp)]
|
||||
#![feature(concat_idents)]
|
||||
#![feature(const_cstr_unchecked)]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_floating_point_arithmetic))]
|
||||
#![feature(const_fn_floating_point_arithmetic)]
|
||||
#![feature(const_fn_transmute)]
|
||||
#![feature(const_fn)]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_fn_ptr_basics))]
|
||||
#![feature(const_fn_fn_ptr_basics)]
|
||||
#![feature(const_ip)]
|
||||
#![feature(const_ipv6)]
|
||||
#![feature(const_raw_ptr_deref)]
|
||||
@ -249,7 +249,6 @@
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(custom_test_frameworks)]
|
||||
#![feature(decl_macro)]
|
||||
#![cfg_attr(bootstrap, feature(doc_alias))]
|
||||
#![feature(doc_cfg)]
|
||||
#![feature(doc_keyword)]
|
||||
#![feature(doc_masked)]
|
||||
|
@ -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-08-26
|
||||
date: 2020-10-07
|
||||
rustc: beta
|
||||
cargo: beta
|
||||
|
||||
@ -20,7 +20,7 @@ cargo: beta
|
||||
# bootstrapping issues with use of new syntax in this repo. If you're looking at
|
||||
# the beta/stable branch, this key should be omitted, as we don't want to depend
|
||||
# on rustfmt from nightly there.
|
||||
rustfmt: nightly-2020-07-12
|
||||
rustfmt: nightly-2020-10-07
|
||||
|
||||
# When making a stable release the process currently looks like:
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user