Bump the bootstrap compiler to 1.26.0 beta
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
This commit is contained in:
parent
01d0be9925
commit
8958815916
@ -114,8 +114,7 @@
|
||||
//! also check out the `src/bootstrap/README.md` file for more information.
|
||||
|
||||
#![deny(warnings)]
|
||||
#![feature(conservative_impl_trait, fs_read_write, core_intrinsics)]
|
||||
#![feature(slice_concat_ext)]
|
||||
#![feature(core_intrinsics)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate build_helper;
|
||||
@ -1149,7 +1148,7 @@ fn create(&self, path: &Path, s: &str) {
|
||||
|
||||
fn read(&self, path: &Path) -> String {
|
||||
if self.config.dry_run { return String::new(); }
|
||||
t!(fs::read_string(path))
|
||||
t!(fs::read_to_string(path))
|
||||
}
|
||||
|
||||
fn create_dir(&self, dir: &Path) {
|
||||
|
@ -12,7 +12,6 @@
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
use std::process::{Command, exit};
|
||||
use std::slice::SliceConcatExt;
|
||||
|
||||
use Mode;
|
||||
use Compiler;
|
||||
|
@ -10,7 +10,6 @@
|
||||
|
||||
#![deny(warnings)]
|
||||
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(rand)]
|
||||
#![feature(repr_simd)]
|
||||
#![feature(slice_sort_by_cached_key)]
|
||||
|
@ -97,8 +97,6 @@
|
||||
#![feature(fmt_internals)]
|
||||
#![feature(from_ref)]
|
||||
#![feature(fundamental)]
|
||||
#![cfg_attr(stage0, feature(generic_param_attrs))]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(lang_items)]
|
||||
#![feature(needs_allocator)]
|
||||
#![feature(nonzero)]
|
||||
@ -123,6 +121,7 @@
|
||||
#![feature(exact_chunks)]
|
||||
#![feature(pointer_methods)]
|
||||
#![feature(inclusive_range_fields)]
|
||||
#![cfg_attr(stage0, feature(generic_param_attrs))]
|
||||
|
||||
#![cfg_attr(not(test), feature(fn_traits, swap_with_slice, i128))]
|
||||
#![cfg_attr(test, feature(test))]
|
||||
|
@ -14,7 +14,6 @@
|
||||
#![feature(alloc_system)]
|
||||
#![feature(attr_literals)]
|
||||
#![feature(box_syntax)]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(const_fn)]
|
||||
#![feature(drain_filter)]
|
||||
#![feature(exact_size_is_empty)]
|
||||
|
@ -427,7 +427,7 @@ fn cmp(&self, other: &Reverse<T>) -> Ordering {
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
#[cfg_attr(not(stage0), lang = "ord")]
|
||||
#[lang = "ord"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait Ord: Eq + PartialOrd<Self> {
|
||||
/// This method returns an `Ordering` between `self` and `other`.
|
||||
@ -597,8 +597,7 @@ fn partial_cmp(&self, other: &Ordering) -> Option<Ordering> {
|
||||
/// assert_eq!(x < y, true);
|
||||
/// assert_eq!(x.lt(&y), true);
|
||||
/// ```
|
||||
#[cfg_attr(stage0, lang = "ord")]
|
||||
#[cfg_attr(not(stage0), lang = "partial_ord")]
|
||||
#[lang = "partial_ord"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_on_unimplemented = "can't compare `{Self}` with `{Rhs}`"]
|
||||
pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
|
||||
|
@ -1293,7 +1293,6 @@ pub fn volatile_copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T,
|
||||
pub fn bswap<T>(x: T) -> T;
|
||||
|
||||
/// Reverses the bits in an integer type `T`.
|
||||
#[cfg(not(stage0))]
|
||||
pub fn bitreverse<T>(x: T) -> T;
|
||||
|
||||
/// Performs checked integer addition.
|
||||
@ -1316,7 +1315,6 @@ pub fn volatile_copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T,
|
||||
|
||||
/// Performs an exact division, resulting in undefined behavior where
|
||||
/// `x % y != 0` or `y == 0` or `x == T::min_value() && y == -1`
|
||||
#[cfg(not(stage0))]
|
||||
pub fn exact_div<T>(x: T, y: T) -> T;
|
||||
|
||||
/// Performs an unchecked division, resulting in undefined behavior
|
||||
@ -1401,8 +1399,3 @@ pub fn volatile_copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T,
|
||||
/// Probably will never become stable.
|
||||
pub fn nontemporal_store<T>(ptr: *mut T, val: T);
|
||||
}
|
||||
|
||||
#[cfg(stage0)]
|
||||
pub unsafe fn exact_div<T>(a: T, b: T) -> T {
|
||||
unchecked_div(a, b)
|
||||
}
|
||||
|
@ -78,8 +78,6 @@
|
||||
#![feature(doc_spotlight)]
|
||||
#![feature(fn_must_use)]
|
||||
#![feature(fundamental)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(intrinsics)]
|
||||
#![feature(iterator_flatten)]
|
||||
#![feature(iterator_repeat_with)]
|
||||
@ -103,9 +101,6 @@
|
||||
#![feature(untagged_unions)]
|
||||
#![feature(unwind_attributes)]
|
||||
|
||||
#![cfg_attr(stage0, allow(unused_attributes))]
|
||||
#![cfg_attr(stage0, feature(never_type))]
|
||||
|
||||
#[prelude_import]
|
||||
#[allow(unused)]
|
||||
use prelude::v1::*;
|
||||
|
@ -28,71 +28,6 @@ macro_rules! panic {
|
||||
});
|
||||
}
|
||||
|
||||
/// Ensure that a boolean expression is `true` at runtime.
|
||||
///
|
||||
/// This will invoke the [`panic!`] macro if the provided expression cannot be
|
||||
/// evaluated to `true` at runtime.
|
||||
///
|
||||
/// # Uses
|
||||
///
|
||||
/// Assertions are always checked in both debug and release builds, and cannot
|
||||
/// be disabled. See [`debug_assert!`] for assertions that are not enabled in
|
||||
/// release builds by default.
|
||||
///
|
||||
/// Unsafe code relies on `assert!` to enforce run-time invariants that, if
|
||||
/// violated could lead to unsafety.
|
||||
///
|
||||
/// Other use-cases of `assert!` include [testing] and enforcing run-time
|
||||
/// invariants in safe code (whose violation cannot result in unsafety).
|
||||
///
|
||||
/// # Custom Messages
|
||||
///
|
||||
/// This macro has a second form, where a custom panic message can
|
||||
/// be provided with or without arguments for formatting. See [`std::fmt`]
|
||||
/// for syntax for this form.
|
||||
///
|
||||
/// [`panic!`]: macro.panic.html
|
||||
/// [`debug_assert!`]: macro.debug_assert.html
|
||||
/// [testing]: ../book/second-edition/ch11-01-writing-tests.html#checking-results-with-the-assert-macro
|
||||
/// [`std::fmt`]: ../std/fmt/index.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// // the panic message for these assertions is the stringified value of the
|
||||
/// // expression given.
|
||||
/// assert!(true);
|
||||
///
|
||||
/// fn some_computation() -> bool { true } // a very simple function
|
||||
///
|
||||
/// assert!(some_computation());
|
||||
///
|
||||
/// // assert with a custom message
|
||||
/// let x = true;
|
||||
/// assert!(x, "x wasn't true!");
|
||||
///
|
||||
/// let a = 3; let b = 27;
|
||||
/// assert!(a + b == 30, "a = {}, b = {}", a, b);
|
||||
/// ```
|
||||
#[macro_export]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[cfg(stage0)]
|
||||
macro_rules! assert {
|
||||
($cond:expr) => (
|
||||
if !$cond {
|
||||
panic!(concat!("assertion failed: ", stringify!($cond)))
|
||||
}
|
||||
);
|
||||
($cond:expr,) => (
|
||||
assert!($cond)
|
||||
);
|
||||
($cond:expr, $($arg:tt)+) => (
|
||||
if !$cond {
|
||||
panic!($($arg)+)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/// Asserts that two expressions are equal to each other (using [`PartialEq`]).
|
||||
///
|
||||
/// On panic, this macro will print the values of the expressions with their
|
||||
|
@ -64,8 +64,7 @@ pub fn panic_fmt(fmt: fmt::Arguments, file_line_col: &(&'static str, u32, u32))
|
||||
#[allow(improper_ctypes)]
|
||||
extern {
|
||||
#[lang = "panic_fmt"]
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
fn panic_impl(fmt: fmt::Arguments, file: &'static str, line: u32, col: u32) -> !;
|
||||
}
|
||||
let (file, line, col) = *file_line_col;
|
||||
|
@ -23,10 +23,7 @@
|
||||
#![feature(fmt_internals)]
|
||||
#![feature(hashmap_internals)]
|
||||
#![feature(iterator_step_by)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(iterator_flatten)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(iterator_repeat_with)]
|
||||
#![feature(nonzero)]
|
||||
#![feature(pattern)]
|
||||
|
@ -286,8 +286,7 @@ unsafe fn find_eh_action(context: *mut uw::_Unwind_Context)
|
||||
// See docs in the `unwind` module.
|
||||
#[cfg(all(target_os="windows", target_arch = "x86", target_env="gnu"))]
|
||||
#[lang = "eh_unwind_resume"]
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
unsafe extern "C" fn rust_eh_unwind_resume(panic_ctx: *mut u8) -> ! {
|
||||
uw::_Unwind_Resume(panic_ctx as *mut uw::_Unwind_Exception);
|
||||
}
|
||||
|
@ -112,8 +112,7 @@
|
||||
// Entry point for raising an exception, just delegates to the platform-specific
|
||||
// implementation.
|
||||
#[no_mangle]
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub unsafe extern "C" fn __rust_start_panic(data: usize, vtable: usize) -> u32 {
|
||||
imp::panic(mem::transmute(raw::TraitObject {
|
||||
data: data as *mut (),
|
||||
|
@ -108,8 +108,7 @@ pub unsafe fn cleanup(ptr: *mut u8) -> Box<Any + Send> {
|
||||
}
|
||||
|
||||
#[lang = "eh_unwind_resume"]
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
unsafe extern "C" fn rust_eh_unwind_resume(panic_ctx: c::LPVOID) -> ! {
|
||||
let params = [panic_ctx as c::ULONG_PTR];
|
||||
c::RaiseException(RUST_PANIC,
|
||||
|
@ -79,21 +79,18 @@ pub enum EXCEPTION_DISPOSITION {
|
||||
pub use self::EXCEPTION_DISPOSITION::*;
|
||||
|
||||
extern "system" {
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn RaiseException(dwExceptionCode: DWORD,
|
||||
dwExceptionFlags: DWORD,
|
||||
nNumberOfArguments: DWORD,
|
||||
lpArguments: *const ULONG_PTR);
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn RtlUnwindEx(TargetFrame: LPVOID,
|
||||
TargetIp: LPVOID,
|
||||
ExceptionRecord: *const EXCEPTION_RECORD,
|
||||
ReturnValue: LPVOID,
|
||||
OriginalContext: *const CONTEXT,
|
||||
HistoryTable: *const UNWIND_HISTORY_TABLE);
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn _CxxThrowException(pExceptionObject: *mut c_void, pThrowInfo: *mut u8);
|
||||
}
|
||||
|
@ -34,7 +34,6 @@
|
||||
test(no_crate_inject, attr(deny(warnings))),
|
||||
test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))]
|
||||
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(rustc_private)]
|
||||
#![feature(staged_api)]
|
||||
#![feature(lang_items)]
|
||||
|
@ -43,19 +43,14 @@
|
||||
|
||||
#![feature(box_patterns)]
|
||||
#![feature(box_syntax)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(const_fn)]
|
||||
#![cfg_attr(stage0, feature(copy_closures, clone_closures))]
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(drain_filter)]
|
||||
#![feature(dyn_trait)]
|
||||
#![feature(entry_or_default)]
|
||||
#![feature(from_ref)]
|
||||
#![feature(fs_read_write)]
|
||||
#![cfg_attr(stage0, feature(i128_type, i128))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![cfg_attr(windows, feature(libc))]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![feature(macro_lifetime_matcher)]
|
||||
#![feature(macro_vis_matcher)]
|
||||
#![feature(exhaustive_patterns)]
|
||||
@ -68,8 +63,6 @@
|
||||
#![feature(slice_patterns)]
|
||||
#![feature(specialization)]
|
||||
#![feature(unboxed_closures)]
|
||||
#![cfg_attr(stage0, feature(underscore_lifetimes))]
|
||||
#![cfg_attr(stage0, feature(universal_impl_trait))]
|
||||
#![feature(trace_macros)]
|
||||
#![feature(trusted_len)]
|
||||
#![feature(catch_expr)]
|
||||
|
@ -46,10 +46,6 @@
|
||||
#![deny(warnings)]
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
#![cfg_attr(stage0, feature(slice_patterns))]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(try_from))]
|
||||
|
||||
// See librustc_cratesio_shim/Cargo.toml for a comment explaining this.
|
||||
#[allow(unused_extern_crates)]
|
||||
extern crate rustc_cratesio_shim;
|
||||
|
@ -8,8 +8,6 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
|
||||
#[macro_use]
|
||||
extern crate rustc_apfloat;
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
#![allow(non_camel_case_types)]
|
||||
|
||||
#![feature(from_ref)]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![feature(quote)]
|
||||
|
||||
#[macro_use] extern crate log;
|
||||
|
@ -19,8 +19,6 @@
|
||||
html_root_url = "https://doc.rust-lang.org/nightly/")]
|
||||
#![deny(warnings)]
|
||||
|
||||
#![cfg_attr(stage0, feature(i128_type, i128))]
|
||||
|
||||
extern crate rustc_apfloat;
|
||||
|
||||
extern crate syntax;
|
||||
|
@ -26,14 +26,10 @@
|
||||
#![feature(unboxed_closures)]
|
||||
#![feature(fn_traits)]
|
||||
#![feature(unsize)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![cfg_attr(stage0, feature(i128_type, i128))]
|
||||
#![feature(specialization)]
|
||||
#![feature(optin_builtin_traits)]
|
||||
#![cfg_attr(stage0, feature(underscore_lifetimes))]
|
||||
#![feature(macro_vis_matcher)]
|
||||
#![feature(allow_internal_unstable)]
|
||||
#![cfg_attr(stage0, feature(universal_impl_trait))]
|
||||
|
||||
#![cfg_attr(unix, feature(libc))]
|
||||
#![cfg_attr(test, feature(test))]
|
||||
|
@ -17,8 +17,6 @@
|
||||
#![allow(unused_attributes)]
|
||||
#![feature(range_contains)]
|
||||
#![cfg_attr(unix, feature(libc))]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(optin_builtin_traits)]
|
||||
|
||||
extern crate atty;
|
||||
|
@ -15,10 +15,7 @@
|
||||
html_root_url = "https://doc.rust-lang.org/nightly/")]
|
||||
#![deny(warnings)]
|
||||
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(fs_read_write)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(specialization)]
|
||||
|
||||
extern crate graphviz;
|
||||
|
@ -27,11 +27,9 @@
|
||||
#![cfg_attr(test, feature(test))]
|
||||
#![feature(box_patterns)]
|
||||
#![feature(box_syntax)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(macro_vis_matcher)]
|
||||
#![feature(quote)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![cfg_attr(stage0, feature(never_type))]
|
||||
|
||||
#[macro_use]
|
||||
extern crate syntax;
|
||||
|
@ -14,9 +14,7 @@
|
||||
#![deny(warnings)]
|
||||
|
||||
#![feature(box_patterns)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(fs_read_write)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(libc)]
|
||||
#![feature(macro_lifetime_matcher)]
|
||||
#![feature(proc_macro_internals)]
|
||||
|
@ -21,22 +21,16 @@
|
||||
#![feature(box_patterns)]
|
||||
#![feature(box_syntax)]
|
||||
#![feature(catch_expr)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(const_fn)]
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(decl_macro)]
|
||||
#![feature(dyn_trait)]
|
||||
#![feature(fs_read_write)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(macro_vis_matcher)]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![feature(exhaustive_patterns)]
|
||||
#![feature(range_contains)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![feature(nonzero)]
|
||||
#![cfg_attr(stage0, feature(underscore_lifetimes))]
|
||||
#![cfg_attr(stage0, feature(never_type))]
|
||||
#![feature(inclusive_range_fields)]
|
||||
|
||||
extern crate arena;
|
||||
|
@ -14,8 +14,6 @@
|
||||
#![deny(warnings)]
|
||||
|
||||
#![feature(crate_visibility_modifier)]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![cfg_attr(stage0, feature(underscore_lifetimes))]
|
||||
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
|
@ -24,13 +24,9 @@
|
||||
#![feature(custom_attribute)]
|
||||
#![feature(fs_read_write)]
|
||||
#![allow(unused_attributes)]
|
||||
#![cfg_attr(stage0, feature(i128_type, i128))]
|
||||
#![cfg_attr(stage0, feature(inclusive_range_syntax))]
|
||||
#![feature(libc)]
|
||||
#![feature(quote)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![cfg_attr(stage0, feature(slice_patterns))]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![feature(optin_builtin_traits)]
|
||||
#![feature(inclusive_range_fields)]
|
||||
|
||||
|
@ -21,10 +21,8 @@
|
||||
#![feature(box_syntax)]
|
||||
#![feature(custom_attribute)]
|
||||
#![allow(unused_attributes)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(quote)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
|
||||
extern crate ar;
|
||||
extern crate flate2;
|
||||
|
@ -72,22 +72,16 @@
|
||||
|
||||
#![allow(non_camel_case_types)]
|
||||
|
||||
#![cfg_attr(stage0, feature(advanced_slice_patterns))]
|
||||
#![feature(box_patterns)]
|
||||
#![feature(box_syntax)]
|
||||
#![cfg_attr(stage0, feature(conservative_impl_trait))]
|
||||
#![cfg_attr(stage0, feature(copy_closures, clone_closures))]
|
||||
#![feature(crate_visibility_modifier)]
|
||||
#![feature(from_ref)]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![feature(exhaustive_patterns)]
|
||||
#![feature(option_filter)]
|
||||
#![feature(quote)]
|
||||
#![feature(refcell_replace_swap)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![feature(slice_patterns)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![cfg_attr(stage0, feature(never_type))]
|
||||
#![feature(dyn_trait)]
|
||||
|
||||
#[macro_use] extern crate log;
|
||||
|
@ -20,7 +20,6 @@
|
||||
#![feature(box_syntax)]
|
||||
#![feature(fs_read_write)]
|
||||
#![feature(set_stdio)]
|
||||
#![cfg_attr(stage0, feature(slice_patterns))]
|
||||
#![feature(test)]
|
||||
#![feature(unicode)]
|
||||
#![feature(vec_remove_item)]
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
#![feature(box_syntax)]
|
||||
#![feature(core_intrinsics)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(specialization)]
|
||||
#![cfg_attr(test, feature(test))]
|
||||
|
||||
|
@ -269,7 +269,6 @@
|
||||
#![cfg_attr(stage0, feature(generic_param_attrs))]
|
||||
#![feature(hashmap_internals)]
|
||||
#![feature(heap_api)]
|
||||
#![cfg_attr(stage0, feature(i128_type, i128))]
|
||||
#![feature(int_error_internals)]
|
||||
#![feature(integer_atomics)]
|
||||
#![feature(into_cow)]
|
||||
@ -321,8 +320,6 @@
|
||||
#![feature(doc_spotlight)]
|
||||
#![cfg_attr(test, feature(update_panic_count))]
|
||||
#![cfg_attr(windows, feature(used))]
|
||||
#![cfg_attr(stage0, feature(never_type))]
|
||||
#![cfg_attr(stage0, feature(termination_trait))]
|
||||
|
||||
#![default_lib_allocator]
|
||||
|
||||
@ -355,7 +352,6 @@
|
||||
// add a new crate name so we can attach the re-exports to it.
|
||||
#[macro_reexport(assert_eq, assert_ne, debug_assert, debug_assert_eq,
|
||||
debug_assert_ne, unreachable, unimplemented, write, writeln, try)]
|
||||
#[cfg_attr(stage0, macro_reexport(assert))]
|
||||
extern crate core as __core;
|
||||
|
||||
#[macro_use]
|
||||
|
@ -55,8 +55,7 @@ fn __rust_maybe_catch_panic(f: fn(*mut u8),
|
||||
data: *mut u8,
|
||||
data_ptr: *mut usize,
|
||||
vtable_ptr: *mut usize) -> u32;
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
fn __rust_start_panic(data: usize, vtable: usize) -> u32;
|
||||
}
|
||||
|
||||
@ -316,8 +315,7 @@ pub fn panicking() -> bool {
|
||||
/// Entry point of panic from the libcore crate.
|
||||
#[cfg(not(test))]
|
||||
#[lang = "panic_fmt"]
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub extern fn rust_begin_panic(msg: fmt::Arguments,
|
||||
file: &'static str,
|
||||
line: u32,
|
||||
|
@ -22,9 +22,7 @@
|
||||
|
||||
#![feature(unicode)]
|
||||
#![feature(rustc_diagnostic_macros)]
|
||||
#![cfg_attr(stage0, feature(match_default_bindings))]
|
||||
#![feature(non_exhaustive)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(const_atomic_usize_new)]
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
#![feature(const_fn)]
|
||||
#![feature(custom_attribute)]
|
||||
#![cfg_attr(stage0, feature(i128_type))]
|
||||
#![feature(optin_builtin_traits)]
|
||||
#![allow(unused_attributes)]
|
||||
#![feature(specialization)]
|
||||
|
@ -83,8 +83,7 @@ pub enum _Unwind_Context {}
|
||||
pub type _Unwind_Exception_Cleanup_Fn = extern "C" fn(unwind_code: _Unwind_Reason_Code,
|
||||
exception: *mut _Unwind_Exception);
|
||||
extern "C" {
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn _Unwind_Resume(exception: *mut _Unwind_Exception) -> !;
|
||||
pub fn _Unwind_DeleteException(exception: *mut _Unwind_Exception);
|
||||
pub fn _Unwind_GetLanguageSpecificData(ctx: *mut _Unwind_Context) -> *mut c_void;
|
||||
@ -221,8 +220,7 @@ pub unsafe fn _Unwind_FindEnclosingFunction(pc: *mut c_void) -> *mut c_void {
|
||||
if #[cfg(not(all(target_os = "ios", target_arch = "arm")))] {
|
||||
// Not 32-bit iOS
|
||||
extern "C" {
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn _Unwind_RaiseException(exception: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
|
||||
pub fn _Unwind_Backtrace(trace: _Unwind_Trace_Fn,
|
||||
trace_argument: *mut c_void)
|
||||
@ -231,8 +229,7 @@ pub fn _Unwind_Backtrace(trace: _Unwind_Trace_Fn,
|
||||
} else {
|
||||
// 32-bit iOS uses SjLj and does not provide _Unwind_Backtrace()
|
||||
extern "C" {
|
||||
#[cfg_attr(stage0, unwind)]
|
||||
#[cfg_attr(not(stage0), unwind(allowed))]
|
||||
#[unwind(allowed)]
|
||||
pub fn _Unwind_SjLj_RaiseException(e: *mut _Unwind_Exception) -> _Unwind_Reason_Code;
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
# source tarball for a stable release you'll likely see `1.x.0` for rustc and
|
||||
# `0.x.0` for Cargo where they were released on `date`.
|
||||
|
||||
date: 2018-03-18
|
||||
date: 2018-04-04
|
||||
rustc: beta
|
||||
cargo: beta
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user