[[package]]
name = "cargo"
-version = "0.29.0"
+version = "0.30.0"
dependencies = [
"atty 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"bufstream 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "crates-io 0.17.0",
+ "crates-io 0.18.0",
"crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"crypto-hash 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
"bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"vec_map 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "crates-io"
-version = "0.17.0"
+version = "0.18.0"
dependencies = [
"curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
name = "rls"
version = "0.128.0"
dependencies = [
- "cargo 0.29.0",
+ "cargo 0.30.0",
"cargo_metadata 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
"clippy_lints 0.0.205 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-ap-serialize 149.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-ap-syntax_pos 149.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
"rustc-ap-serialize 164.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-ap-syntax_pos 164.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
"rustc-ap-rustc_data_structures 149.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-ap-serialize 149.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped-tls 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
"rustc-ap-rustc_data_structures 164.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-ap-serialize 164.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"scoped-tls 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
"serialize 0.0.0",
"syntax_pos 0.0.0",
"termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
"rustc_data_structures 0.0.0",
"scoped-tls 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serialize 0.0.0",
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
[[package]]
name = "unicode-width"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
"checksum unicode-normalization 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f"
"checksum unicode-segmentation 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8083c594e02b8ae1654ae26f0ade5158b119bd88ad0e8227a5d8fcd72407946"
-"checksum unicode-width 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3a113775714a22dcb774d8ea3655c53a32debae63a063acc00a91cc586245f"
+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
"checksum unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "36dff09cafb4ec7c8cf0023eb0b686cb6ce65499116a12201c9e11840ca01beb"
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
use config::Config;
// The version number
-pub const CFG_RELEASE_NUM: &str = "1.28.0";
+pub const CFG_RELEASE_NUM: &str = "1.29.0";
pub struct GitInfo {
inner: Option<Info>,
#![feature(pin)]
#![feature(ptr_internals)]
#![feature(ptr_offset_from)]
-#![cfg_attr(stage0, feature(repr_transparent))]
#![feature(rustc_attrs)]
#![feature(specialization)]
#![feature(split_ascii_whitespace)]
/// source as well as std's catch implementation.
pub fn try(f: fn(*mut u8), data: *mut u8, local_ptr: *mut u8) -> i32;
- #[cfg(stage0)]
- /// docs my friends, its friday!
- pub fn align_offset(ptr: *const (), align: usize) -> usize;
-
/// Emits a `!nontemporal` store according to LLVM (see their docs).
/// Probably will never become stable.
pub fn nontemporal_store<T>(ptr: *mut T, val: T);
#![feature(optin_builtin_traits)]
#![feature(prelude_import)]
#![feature(repr_simd, platform_intrinsics)]
-#![cfg_attr(stage0, feature(repr_transparent))]
#![feature(rustc_attrs)]
#![feature(rustc_const_unstable)]
#![feature(simd_ffi)]
```
"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn count_ones(self) -> u32 { (self as $UnsignedT).count_ones() }
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn count_ones(self) -> u32 { (self as $UnsignedT).count_ones() }
- }
-
doc_comment! {
concat!("Returns the number of zeros in the binary representation of `self`.
", $Feature, "assert_eq!(", stringify!($SelfT), "::max_value().count_zeros(), 1);", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn count_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentatio"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn count_zeros(self) -> u32 {
- (!self).count_ones()
- }
- }
-
doc_comment! {
concat!("Returns the number of leading zeros in the binary representation of `self`.
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn leading_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn leading_zeros(self) -> u32 {
- (self as $UnsignedT).leading_zeros()
- }
- }
-
doc_comment! {
concat!("Returns the number of trailing zeros in the binary representation of `self`.
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn trailing_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn trailing_zeros(self) -> u32 {
- (self as $UnsignedT).trailing_zeros()
- }
- }
-
/// Shifts the bits to the left by a specified amount, `n`,
/// wrapping the truncated bits to the end of the resulting integer.
///
/// assert_eq!(m, 21760);
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn swap_bytes(self) -> Self {
(self as $UnsignedT).swap_bytes() as Self
}
- /// Dummy docs. See !stage0 documentation.
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn swap_bytes(self) -> Self {
- (self as $UnsignedT).swap_bytes() as Self
- }
-
/// Reverses the bit pattern of the integer.
///
/// # Examples
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn from_be(x: Self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn from_be(x: Self) -> Self {
- if cfg!(target_endian = "big") { x } else { x.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts an integer from little endian to the target's endianness.
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn from_le(x: Self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn from_le(x: Self) -> Self {
- if cfg!(target_endian = "little") { x } else { x.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts `self` to big endian from the target's endianness.
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn to_be(self) -> Self { // or not to be?
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn to_be(self) -> Self { // or not to be?
- if cfg!(target_endian = "big") { self } else { self.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts `self` to little endian from the target's endianness.
$EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn to_le(self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn to_le(self) -> Self {
- if cfg!(target_endian = "little") { self } else { self.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Checked integer addition. Computes `self + rhs`, returning `None`
if overflow occurred.
assert_eq!(n.count_ones(), 3);", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn count_ones(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn count_ones(self) -> u32 {
- unsafe { intrinsics::ctpop(self as $ActualT) as u32 }
- }
- }
-
doc_comment! {
concat!("Returns the number of zeros in the binary representation of `self`.
", $Feature, "assert_eq!(", stringify!($SelfT), "::max_value().count_zeros(), 0);", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn count_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn count_zeros(self) -> u32 {
- (!self).count_ones()
- }
- }
-
doc_comment! {
concat!("Returns the number of leading zeros in the binary representation of `self`.
assert_eq!(n.leading_zeros(), 2);", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn leading_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn leading_zeros(self) -> u32 {
- unsafe { intrinsics::ctlz(self as $ActualT) as u32 }
- }
- }
-
doc_comment! {
concat!("Returns the number of trailing zeros in the binary representation
of `self`.
assert_eq!(n.trailing_zeros(), 3);", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn trailing_zeros(self) -> u32 {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn trailing_zeros(self) -> u32 {
- unsafe { uint_cttz_call!(self, $BITS) as u32 }
- }
- }
-
/// Shifts the bits to the left by a specified amount, `n`,
/// wrapping the truncated bits to the end of the resulting integer.
///
/// assert_eq!(m, 21760);
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn swap_bytes(self) -> Self {
unsafe { intrinsics::bswap(self as $ActualT) as Self }
}
- /// Dummy docs. See !stage0 documentation.
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn swap_bytes(self) -> Self {
- unsafe { intrinsics::bswap(self as $ActualT) as Self }
- }
-
/// Reverses the bit pattern of the integer.
///
/// # Examples
}", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn from_be(x: Self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn from_be(x: Self) -> Self {
- if cfg!(target_endian = "big") { x } else { x.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts an integer from little endian to the target's endianness.
}", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn from_le(x: Self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn from_le(x: Self) -> Self {
- if cfg!(target_endian = "little") { x } else { x.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts `self` to big endian from the target's endianness.
}", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn to_be(self) -> Self { // or not to be?
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn to_be(self) -> Self { // or not to be?
- if cfg!(target_endian = "big") { self } else { self.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Converts `self` to little endian from the target's endianness.
}", $EndFeature, "
```"),
#[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(not(stage0))]
#[rustc_const_unstable(feature = "const_int_ops")]
#[inline]
pub const fn to_le(self) -> Self {
}
}
- doc_comment! {
- concat!("Dummy docs. See !stage0 documentation"),
- #[stable(feature = "rust1", since = "1.0.0")]
- #[cfg(stage0)]
- #[inline]
- pub fn to_le(self) -> Self {
- if cfg!(target_endian = "little") { self } else { self.swap_bytes() }
- }
- }
-
doc_comment! {
concat!("Checked integer addition. Computes `self + rhs`, returning `None`
if overflow occurred.
/// assert_eq!(m, Wrapping(-22016));
/// ```
#[unstable(feature = "reverse_bits", issue = "48763")]
- #[cfg(not(stage0))]
#[inline]
pub fn reverse_bits(self) -> Self {
Wrapping(self.0.reverse_bits())
///
/// panic!("Normal panic");
/// ```
-#[cfg_attr(not(stage0), lang = "panic_info")]
+#[lang = "panic_info"]
#[stable(feature = "panic_hooks", since = "1.10.0")]
#[derive(Debug)]
pub struct PanicInfo<'a> {
issue = "0")]
use fmt;
-#[cfg(not(stage0))]
use panic::{Location, PanicInfo};
#[cold] #[inline(never)] // this is the slow path, always
len, index), file_line_col)
}
-#[cfg(stage0)]
-#[cold] #[inline(never)]
-pub fn panic_fmt(fmt: fmt::Arguments, file_line_col: &(&'static str, u32, u32)) -> ! {
- #[allow(improper_ctypes)]
- extern {
- #[lang = "panic_fmt"]
- #[unwind(allowed)]
- fn panic_impl(fmt: fmt::Arguments, file: &'static str, line: u32, col: u32) -> !;
- }
- let (file, line, col) = *file_line_col;
- unsafe { panic_impl(fmt, file, line, col) }
-}
-
-#[cfg(not(stage0))]
#[cold] #[inline(never)]
pub fn panic_fmt(fmt: fmt::Arguments, file_line_col: &(&'static str, u32, u32)) -> ! {
// NOTE This function never crosses the FFI boundary; it's a Rust-to-Rust call
/// # } }
/// ```
#[unstable(feature = "align_offset", issue = "44488")]
- #[cfg(not(stage0))]
pub fn align_offset(self, align: usize) -> usize where T: Sized {
if !align.is_power_of_two() {
panic!("align_offset: align is not a power-of-two");
align_offset(self, align)
}
}
-
- /// definitely docs.
- #[unstable(feature = "align_offset", issue = "44488")]
- #[cfg(stage0)]
- pub fn align_offset(self, align: usize) -> usize where T: Sized {
- if !align.is_power_of_two() {
- panic!("align_offset: align is not a power-of-two");
- }
- unsafe {
- intrinsics::align_offset(self as *const (), align)
- }
- }
}
/// # } }
/// ```
#[unstable(feature = "align_offset", issue = "44488")]
- #[cfg(not(stage0))]
pub fn align_offset(self, align: usize) -> usize where T: Sized {
if !align.is_power_of_two() {
panic!("align_offset: align is not a power-of-two");
align_offset(self, align)
}
}
-
- /// definitely docs.
- #[unstable(feature = "align_offset", issue = "44488")]
- #[cfg(stage0)]
- pub fn align_offset(self, align: usize) -> usize where T: Sized {
- if !align.is_power_of_two() {
- panic!("align_offset: align is not a power-of-two");
- }
- unsafe {
- intrinsics::align_offset(self as *const (), align)
- }
- }
}
/// Align pointer `p`.
///
/// Any questions go to @nagisa.
#[lang="align_offset"]
-#[cfg(not(stage0))]
pub(crate) unsafe fn align_offset<T: Sized>(p: *const T, a: usize) -> usize {
/// Calculate multiplicative modular inverse of `x` modulo `m`.
///
}
/// Function to calculate lenghts of the middle and trailing slice for `align_to{,_mut}`.
- #[cfg(not(stage0))]
fn align_to_offsets<U>(&self) -> (usize, usize) {
// What we gonna do about `rest` is figure out what multiple of `U`s we can put in a
// lowest number of `T`s. And how many `T`s we need for each such "multiple".
/// }
/// ```
#[unstable(feature = "slice_align_to", issue = "44488")]
- #[cfg(not(stage0))]
pub unsafe fn align_to<U>(&self) -> (&[T], &[U], &[T]) {
// Note that most of this function will be constant-evaluated,
if ::mem::size_of::<U>() == 0 || ::mem::size_of::<T>() == 0 {
/// }
/// ```
#[unstable(feature = "slice_align_to", issue = "44488")]
- #[cfg(not(stage0))]
pub unsafe fn align_to_mut<U>(&mut self) -> (&mut [T], &mut [U], &mut [T]) {
// Note that most of this function will be constant-evaluated,
if ::mem::size_of::<U>() == 0 || ::mem::size_of::<T>() == 0 {
#![feature(fs_read_write)]
#![feature(iterator_find_map)]
#![cfg_attr(windows, feature(libc))]
-#![cfg_attr(stage0, feature(macro_lifetime_matcher))]
#![feature(macro_vis_matcher)]
#![feature(never_type)]
#![feature(exhaustive_patterns)]
#![sanitizer_runtime]
#![feature(alloc_system)]
-#![cfg_attr(stage0, feature(global_allocator))]
#![feature(sanitizer_runtime)]
#![feature(staged_api)]
#![no_std]
#![sanitizer_runtime]
#![feature(alloc_system)]
-#![cfg_attr(stage0, feature(global_allocator))]
#![feature(sanitizer_runtime)]
#![feature(staged_api)]
#![no_std]
#![feature(fs_read_write)]
#![feature(libc)]
#![feature(macro_at_most_once_rep)]
-#![cfg_attr(stage0, feature(macro_lifetime_matcher))]
#![feature(proc_macro_internals)]
#![feature(quote)]
#![feature(rustc_diagnostic_macros)]
#![sanitizer_runtime]
#![feature(alloc_system)]
-#![cfg_attr(stage0, feature(global_allocator))]
#![feature(sanitizer_runtime)]
#![feature(staged_api)]
#![no_std]
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
html_root_url = "https://doc.rust-lang.org/nightly/")]
#![feature(custom_attribute)]
-#![cfg_attr(stage0, feature(macro_lifetime_matcher))]
#![allow(unused_attributes)]
#![recursion_limit="256"]
#![sanitizer_runtime]
#![feature(alloc_system)]
-#![cfg_attr(stage0, feature(global_allocator))]
#![feature(sanitizer_runtime)]
#![feature(staged_api)]
#![no_std]
#![feature(doc_keyword)]
#![feature(float_internals)]
#![feature(panic_info_message)]
-#![cfg_attr(not(stage0), feature(panic_implementation))]
+#![feature(panic_implementation)]
#![default_lib_allocator]
// `force_alloc_system` is *only* intended as a workaround for local rebuilds
// with a rustc without jemalloc.
// FIXME(#44236) shouldn't need MSVC logic
-#![cfg_attr(all(not(target_env = "msvc"),
- any(all(stage0, not(test)), feature = "force_alloc_system")),
- feature(global_allocator))]
#[cfg(all(not(target_env = "msvc"),
any(all(stage0, not(test)), feature = "force_alloc_system")))]
#[global_allocator]
/// Entry point of panic from the libcore crate.
#[cfg(not(test))]
-#[cfg(stage0)]
-#[lang = "panic_fmt"]
-pub extern fn rust_begin_panic(msg: fmt::Arguments,
- file: &'static str,
- line: u32,
- col: u32) -> ! {
- begin_panic_fmt(&msg, &(file, line, col))
-}
-
-/// Entry point of panic from the libcore crate.
-#[cfg(not(test))]
-#[cfg(not(stage0))]
#[panic_implementation]
#[unwind(allowed)]
pub fn rust_begin_panic(info: &PanicInfo) -> ! {
/// site as much as possible (so that `panic!()` has as low an impact
/// on (e.g.) the inlining of other functions as possible), by moving
/// the actual formatting into this shared place.
-#[cfg(stage0)]
#[unstable(feature = "libstd_sys_internals",
reason = "used by the panic! macro",
issue = "0")]
#[inline(never)] #[cold]
pub fn begin_panic_fmt(msg: &fmt::Arguments,
file_line_col: &(&'static str, u32, u32)) -> ! {
- // We do two allocations here, unfortunately. But (a) they're
- // required with the current scheme, and (b) we don't handle
- // panic + OOM properly anyway (see comment in begin_panic
- // below).
-
- rust_panic_with_hook(&mut PanicPayload::new(msg), Some(msg), file_line_col);
-}
-
-// NOTE(stage0) move into `continue_panic_fmt` on next stage0 update
-struct PanicPayload<'a> {
- inner: &'a fmt::Arguments<'a>,
- string: Option<String>,
+ let (file, line, col) = *file_line_col;
+ let info = PanicInfo::internal_constructor(
+ Some(msg),
+ Location::internal_constructor(file, line, col),
+ );
+ continue_panic_fmt(&info)
}
-impl<'a> PanicPayload<'a> {
- fn new(inner: &'a fmt::Arguments<'a>) -> PanicPayload<'a> {
- PanicPayload { inner, string: None }
+fn continue_panic_fmt(info: &PanicInfo) -> ! {
+ struct PanicPayload<'a> {
+ inner: &'a fmt::Arguments<'a>,
+ string: Option<String>,
}
- fn fill(&mut self) -> &mut String {
- use fmt::Write;
+ impl<'a> PanicPayload<'a> {
+ fn new(inner: &'a fmt::Arguments<'a>) -> PanicPayload<'a> {
+ PanicPayload { inner, string: None }
+ }
- let inner = self.inner;
- self.string.get_or_insert_with(|| {
- let mut s = String::new();
- drop(s.write_fmt(*inner));
- s
- })
- }
-}
+ fn fill(&mut self) -> &mut String {
+ use fmt::Write;
-unsafe impl<'a> BoxMeUp for PanicPayload<'a> {
- fn box_me_up(&mut self) -> *mut (Any + Send) {
- let contents = mem::replace(self.fill(), String::new());
- Box::into_raw(Box::new(contents))
+ let inner = self.inner;
+ self.string.get_or_insert_with(|| {
+ let mut s = String::new();
+ drop(s.write_fmt(*inner));
+ s
+ })
+ }
}
- fn get(&mut self) -> &(Any + Send) {
- self.fill()
- }
-}
+ unsafe impl<'a> BoxMeUp for PanicPayload<'a> {
+ fn box_me_up(&mut self) -> *mut (Any + Send) {
+ let contents = mem::replace(self.fill(), String::new());
+ Box::into_raw(Box::new(contents))
+ }
-/// The entry point for panicking with a formatted message.
-///
-/// This is designed to reduce the amount of code required at the call
-/// site as much as possible (so that `panic!()` has as low an impact
-/// on (e.g.) the inlining of other functions as possible), by moving
-/// the actual formatting into this shared place.
-#[cfg(not(stage0))]
-#[unstable(feature = "libstd_sys_internals",
- reason = "used by the panic! macro",
- issue = "0")]
-#[inline(never)] #[cold]
-pub fn begin_panic_fmt(msg: &fmt::Arguments,
- file_line_col: &(&'static str, u32, u32)) -> ! {
- let (file, line, col) = *file_line_col;
- let info = PanicInfo::internal_constructor(
- Some(msg),
- Location::internal_constructor(file, line, col),
- );
- continue_panic_fmt(&info)
-}
+ fn get(&mut self) -> &(Any + Send) {
+ self.fill()
+ }
+ }
-#[cfg(not(stage0))]
-fn continue_panic_fmt(info: &PanicInfo) -> ! {
// We do two allocations here, unfortunately. But (a) they're
// required with the current scheme, and (b) we don't handle
// panic + OOM properly anyway (see comment in begin_panic
# 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-05-10
+date: 2018-06-30
rustc: beta
cargo: beta
-Subproject commit e2348c2db296ce33428933c3ab8786d5f3c54a2e
+Subproject commit 5699afe508d62924f6b38b19dc98296ad33d1659
-Subproject commit 118e078c5badd520d18b92813fd88789c8d341ab
+Subproject commit 89414e44dc94844888e59c08bc31dcccb1792800