Bump to 1.33.0
* Update bootstrap compiler * Update version to 1.33.0 * Remove some `#[cfg(stage0)]` annotations Actually updating the version number is blocked on updating Cargo
This commit is contained in:
parent
bd47d6825b
commit
cf47a19305
31 changed files with 47 additions and 63 deletions
|
@ -24,7 +24,7 @@ use Build;
|
||||||
use config::Config;
|
use config::Config;
|
||||||
|
|
||||||
// The version number
|
// The version number
|
||||||
pub const CFG_RELEASE_NUM: &str = "1.32.0";
|
pub const CFG_RELEASE_NUM: &str = "1.33.0";
|
||||||
|
|
||||||
pub struct GitInfo {
|
pub struct GitInfo {
|
||||||
inner: Option<Info>,
|
inner: Option<Info>,
|
||||||
|
|
|
@ -1514,9 +1514,9 @@ fn contains_weird_cases() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn trim_ws() {
|
fn trim_ws() {
|
||||||
assert_eq!(" \t a \t ".trim_left_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t a \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
||||||
"a \t ");
|
"a \t ");
|
||||||
assert_eq!(" \t a \t ".trim_right_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t a \t ".trim_end_matches(|c: char| c.is_whitespace()),
|
||||||
" \t a");
|
" \t a");
|
||||||
assert_eq!(" \t a \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t a \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
||||||
"a \t ");
|
"a \t ");
|
||||||
|
@ -1524,9 +1524,9 @@ fn trim_ws() {
|
||||||
" \t a");
|
" \t a");
|
||||||
assert_eq!(" \t a \t ".trim_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t a \t ".trim_matches(|c: char| c.is_whitespace()),
|
||||||
"a");
|
"a");
|
||||||
assert_eq!(" \t \t ".trim_left_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
||||||
"");
|
"");
|
||||||
assert_eq!(" \t \t ".trim_right_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t \t ".trim_end_matches(|c: char| c.is_whitespace()),
|
||||||
"");
|
"");
|
||||||
assert_eq!(" \t \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
assert_eq!(" \t \t ".trim_start_matches(|c: char| c.is_whitespace()),
|
||||||
"");
|
"");
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#![stable(feature = "", since = "1.30.0")]
|
#![stable(feature = "", since = "1.30.0")]
|
||||||
|
|
||||||
#![allow(non_camel_case_types)]
|
#![allow(non_camel_case_types)]
|
||||||
#![cfg_attr(stage0, allow(dead_code))]
|
|
||||||
|
|
||||||
//! Utilities related to FFI bindings.
|
//! Utilities related to FFI bindings.
|
||||||
|
|
||||||
|
@ -123,7 +122,6 @@ struct VaListImpl {
|
||||||
all supported platforms",
|
all supported platforms",
|
||||||
issue = "27745")]
|
issue = "27745")]
|
||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
#[cfg(not(stage0))]
|
|
||||||
pub struct VaList<'a>(&'a mut VaListImpl);
|
pub struct VaList<'a>(&'a mut VaListImpl);
|
||||||
|
|
||||||
// The VaArgSafe trait needs to be used in public interfaces, however, the trait
|
// The VaArgSafe trait needs to be used in public interfaces, however, the trait
|
||||||
|
@ -173,7 +171,6 @@ impl<T> sealed_trait::VaArgSafe for *mut T {}
|
||||||
issue = "27745")]
|
issue = "27745")]
|
||||||
impl<T> sealed_trait::VaArgSafe for *const T {}
|
impl<T> sealed_trait::VaArgSafe for *const T {}
|
||||||
|
|
||||||
#[cfg(not(stage0))]
|
|
||||||
impl<'a> VaList<'a> {
|
impl<'a> VaList<'a> {
|
||||||
/// Advance to the next arg.
|
/// Advance to the next arg.
|
||||||
#[unstable(feature = "c_variadic",
|
#[unstable(feature = "c_variadic",
|
||||||
|
@ -208,7 +205,6 @@ impl<'a> VaList<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(stage0))]
|
|
||||||
extern "rust-intrinsic" {
|
extern "rust-intrinsic" {
|
||||||
/// Destroy the arglist `ap` after initialization with `va_start` or
|
/// Destroy the arglist `ap` after initialization with `va_start` or
|
||||||
/// `va_copy`.
|
/// `va_copy`.
|
||||||
|
|
|
@ -718,7 +718,6 @@ extern "rust-intrinsic" {
|
||||||
pub fn uninit<T>() -> T;
|
pub fn uninit<T>() -> T;
|
||||||
|
|
||||||
/// Moves a value out of scope without running drop glue.
|
/// Moves a value out of scope without running drop glue.
|
||||||
#[cfg(not(stage0))]
|
|
||||||
pub fn forget<T: ?Sized>(_: T);
|
pub fn forget<T: ?Sized>(_: T);
|
||||||
|
|
||||||
/// Reinterprets the bits of a value of one type as another type.
|
/// Reinterprets the bits of a value of one type as another type.
|
||||||
|
@ -1476,14 +1475,12 @@ extern "rust-intrinsic" {
|
||||||
/// The stabilized versions of this intrinsic are available on the integer
|
/// The stabilized versions of this intrinsic are available on the integer
|
||||||
/// primitives via the `rotate_left` method. For example,
|
/// primitives via the `rotate_left` method. For example,
|
||||||
/// [`std::u32::rotate_left`](../../std/primitive.u32.html#method.rotate_left)
|
/// [`std::u32::rotate_left`](../../std/primitive.u32.html#method.rotate_left)
|
||||||
#[cfg(not(stage0))]
|
|
||||||
pub fn rotate_left<T>(x: T, y: T) -> T;
|
pub fn rotate_left<T>(x: T, y: T) -> T;
|
||||||
|
|
||||||
/// Performs rotate right.
|
/// Performs rotate right.
|
||||||
/// The stabilized versions of this intrinsic are available on the integer
|
/// The stabilized versions of this intrinsic are available on the integer
|
||||||
/// primitives via the `rotate_right` method. For example,
|
/// primitives via the `rotate_right` method. For example,
|
||||||
/// [`std::u32::rotate_right`](../../std/primitive.u32.html#method.rotate_right)
|
/// [`std::u32::rotate_right`](../../std/primitive.u32.html#method.rotate_right)
|
||||||
#[cfg(not(stage0))]
|
|
||||||
pub fn rotate_right<T>(x: T, y: T) -> T;
|
pub fn rotate_right<T>(x: T, y: T) -> T;
|
||||||
|
|
||||||
/// Returns (a + b) mod 2<sup>N</sup>, where N is the width of T in bits.
|
/// Returns (a + b) mod 2<sup>N</sup>, where N is the width of T in bits.
|
||||||
|
|
|
@ -149,7 +149,6 @@ pub fn forget<T>(t: T) {
|
||||||
///
|
///
|
||||||
/// [`forget`]: fn.forget.html
|
/// [`forget`]: fn.forget.html
|
||||||
#[inline]
|
#[inline]
|
||||||
#[cfg(not(stage0))]
|
|
||||||
#[unstable(feature = "forget_unsized", issue = "0")]
|
#[unstable(feature = "forget_unsized", issue = "0")]
|
||||||
pub fn forget_unsized<T: ?Sized>(t: T) {
|
pub fn forget_unsized<T: ?Sized>(t: T) {
|
||||||
unsafe { intrinsics::forget(t) }
|
unsafe { intrinsics::forget(t) }
|
||||||
|
|
|
@ -2330,13 +2330,8 @@ assert_eq!(n.rotate_left(", $rot, "), m);
|
||||||
#[rustc_const_unstable(feature = "const_int_rotate")]
|
#[rustc_const_unstable(feature = "const_int_rotate")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn rotate_left(self, n: u32) -> Self {
|
pub const fn rotate_left(self, n: u32) -> Self {
|
||||||
#[cfg(not(stage0))] {
|
|
||||||
unsafe { intrinsics::rotate_left(self, n as $SelfT) }
|
unsafe { intrinsics::rotate_left(self, n as $SelfT) }
|
||||||
}
|
}
|
||||||
#[cfg(stage0)] {
|
|
||||||
(self << (n % $BITS)) | (self >> (($BITS - (n % $BITS)) % $BITS))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doc_comment! {
|
doc_comment! {
|
||||||
|
@ -2360,13 +2355,8 @@ assert_eq!(n.rotate_right(", $rot, "), m);
|
||||||
#[rustc_const_unstable(feature = "const_int_rotate")]
|
#[rustc_const_unstable(feature = "const_int_rotate")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn rotate_right(self, n: u32) -> Self {
|
pub const fn rotate_right(self, n: u32) -> Self {
|
||||||
#[cfg(not(stage0))] {
|
|
||||||
unsafe { intrinsics::rotate_right(self, n as $SelfT) }
|
unsafe { intrinsics::rotate_right(self, n as $SelfT) }
|
||||||
}
|
}
|
||||||
#[cfg(stage0)] {
|
|
||||||
(self >> (n % $BITS)) | (self << (($BITS - (n % $BITS)) % $BITS))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doc_comment! {
|
doc_comment! {
|
||||||
|
|
|
@ -93,7 +93,7 @@ impl<T: ?Sized+Unsize<U>, U: ?Sized> CoerceUnsized<*const U> for *const T {}
|
||||||
/// {}
|
/// {}
|
||||||
/// ```
|
/// ```
|
||||||
#[unstable(feature = "dispatch_from_dyn", issue = "0")]
|
#[unstable(feature = "dispatch_from_dyn", issue = "0")]
|
||||||
#[cfg_attr(not(stage0), lang = "dispatch_from_dyn")]
|
#[lang = "dispatch_from_dyn"]
|
||||||
pub trait DispatchFromDyn<T> {
|
pub trait DispatchFromDyn<T> {
|
||||||
// Empty.
|
// Empty.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1940,7 +1940,7 @@ atomic_int! {
|
||||||
8,
|
8,
|
||||||
u64 AtomicU64 ATOMIC_U64_INIT
|
u64 AtomicU64 ATOMIC_U64_INIT
|
||||||
}
|
}
|
||||||
#[cfg(all(not(stage0), target_has_atomic = "128"))]
|
#[cfg(target_has_atomic = "128")]
|
||||||
atomic_int! {
|
atomic_int! {
|
||||||
unstable(feature = "integer_atomics", issue = "32976"),
|
unstable(feature = "integer_atomics", issue = "32976"),
|
||||||
unstable(feature = "integer_atomics", issue = "32976"),
|
unstable(feature = "integer_atomics", issue = "32976"),
|
||||||
|
@ -1954,7 +1954,7 @@ atomic_int! {
|
||||||
16,
|
16,
|
||||||
i128 AtomicI128 ATOMIC_I128_INIT
|
i128 AtomicI128 ATOMIC_I128_INIT
|
||||||
}
|
}
|
||||||
#[cfg(all(not(stage0), target_has_atomic = "128"))]
|
#[cfg(target_has_atomic = "128")]
|
||||||
atomic_int! {
|
atomic_int! {
|
||||||
unstable(feature = "integer_atomics", issue = "32976"),
|
unstable(feature = "integer_atomics", issue = "32976"),
|
||||||
unstable(feature = "integer_atomics", issue = "32976"),
|
unstable(feature = "integer_atomics", issue = "32976"),
|
||||||
|
|
|
@ -463,7 +463,7 @@ impl BuiltinLintDiagnostics {
|
||||||
Ok(ref s) => {
|
Ok(ref s) => {
|
||||||
// FIXME(Manishearth) ideally the emitting code
|
// FIXME(Manishearth) ideally the emitting code
|
||||||
// can tell us whether or not this is global
|
// can tell us whether or not this is global
|
||||||
let opt_colon = if s.trim_left().starts_with("::") {
|
let opt_colon = if s.trim_start().starts_with("::") {
|
||||||
""
|
""
|
||||||
} else {
|
} else {
|
||||||
"::"
|
"::"
|
||||||
|
|
|
@ -1262,7 +1262,7 @@ impl EmitterWriter {
|
||||||
|
|
||||||
// Do not underline the leading...
|
// Do not underline the leading...
|
||||||
let start = part.snippet.len()
|
let start = part.snippet.len()
|
||||||
.saturating_sub(part.snippet.trim_left().len());
|
.saturating_sub(part.snippet.trim_start().len());
|
||||||
// ...or trailing spaces. Account for substitutions containing unicode
|
// ...or trailing spaces. Account for substitutions containing unicode
|
||||||
// characters.
|
// characters.
|
||||||
let sub_len = part.snippet.trim().chars().fold(0, |acc, ch| {
|
let sub_len = part.snippet.trim().chars().fold(0, |acc, ch| {
|
||||||
|
|
|
@ -167,7 +167,7 @@ impl NonSnakeCase {
|
||||||
fn to_snake_case(mut str: &str) -> String {
|
fn to_snake_case(mut str: &str) -> String {
|
||||||
let mut words = vec![];
|
let mut words = vec![];
|
||||||
// Preserve leading underscores
|
// Preserve leading underscores
|
||||||
str = str.trim_left_matches(|c: char| {
|
str = str.trim_start_matches(|c: char| {
|
||||||
if c == '_' {
|
if c == '_' {
|
||||||
words.push(String::new());
|
words.push(String::new());
|
||||||
true
|
true
|
||||||
|
@ -199,7 +199,7 @@ impl NonSnakeCase {
|
||||||
if ident.is_empty() {
|
if ident.is_empty() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
let ident = ident.trim_left_matches('\'');
|
let ident = ident.trim_start_matches('\'');
|
||||||
let ident = ident.trim_matches('_');
|
let ident = ident.trim_matches('_');
|
||||||
|
|
||||||
let mut allow_underscore = true;
|
let mut allow_underscore = true;
|
||||||
|
|
|
@ -192,11 +192,11 @@ fn main() {
|
||||||
// On MSVC llvm-config will print the full name to libraries, but
|
// On MSVC llvm-config will print the full name to libraries, but
|
||||||
// we're only interested in the name part
|
// we're only interested in the name part
|
||||||
let name = Path::new(lib).file_name().unwrap().to_str().unwrap();
|
let name = Path::new(lib).file_name().unwrap().to_str().unwrap();
|
||||||
name.trim_right_matches(".lib")
|
name.trim_end_matches(".lib")
|
||||||
} else if lib.ends_with(".lib") {
|
} else if lib.ends_with(".lib") {
|
||||||
// Some MSVC libraries just come up with `.lib` tacked on, so chop
|
// Some MSVC libraries just come up with `.lib` tacked on, so chop
|
||||||
// that off
|
// that off
|
||||||
lib.trim_right_matches(".lib")
|
lib.trim_end_matches(".lib")
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
|
@ -426,13 +426,13 @@ impl<'a, 'gcx, 'tcx> MirBorrowckCtxt<'a, 'gcx, 'tcx> {
|
||||||
.span_to_snippet(pat_span)
|
.span_to_snippet(pat_span)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
if pat_snippet.starts_with('&') {
|
if pat_snippet.starts_with('&') {
|
||||||
let pat_snippet = pat_snippet[1..].trim_left();
|
let pat_snippet = pat_snippet[1..].trim_start();
|
||||||
let suggestion;
|
let suggestion;
|
||||||
let to_remove;
|
let to_remove;
|
||||||
if pat_snippet.starts_with("mut")
|
if pat_snippet.starts_with("mut")
|
||||||
&& pat_snippet["mut".len()..].starts_with(Pattern_White_Space)
|
&& pat_snippet["mut".len()..].starts_with(Pattern_White_Space)
|
||||||
{
|
{
|
||||||
suggestion = pat_snippet["mut".len()..].trim_left();
|
suggestion = pat_snippet["mut".len()..].trim_start();
|
||||||
to_remove = "&mut";
|
to_remove = "&mut";
|
||||||
} else {
|
} else {
|
||||||
suggestion = pat_snippet;
|
suggestion = pat_snippet;
|
||||||
|
|
|
@ -103,7 +103,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M>
|
||||||
if bits == 0 {
|
if bits == 0 {
|
||||||
return err!(Intrinsic(format!("{} called on 0", intrinsic_name)));
|
return err!(Intrinsic(format!("{} called on 0", intrinsic_name)));
|
||||||
}
|
}
|
||||||
numeric_intrinsic(intrinsic_name.trim_right_matches("_nonzero"), bits, kind)?
|
numeric_intrinsic(intrinsic_name.trim_end_matches("_nonzero"), bits, kind)?
|
||||||
} else {
|
} else {
|
||||||
numeric_intrinsic(intrinsic_name, bits, kind)?
|
numeric_intrinsic(intrinsic_name, bits, kind)?
|
||||||
};
|
};
|
||||||
|
|
|
@ -123,7 +123,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
||||||
let sole_field_ty = sole_field.ty(self.tcx, substs);
|
let sole_field_ty = sole_field.ty(self.tcx, substs);
|
||||||
if self.can_coerce(expr_ty, sole_field_ty) {
|
if self.can_coerce(expr_ty, sole_field_ty) {
|
||||||
let variant_path = self.tcx.item_path_str(variant.did);
|
let variant_path = self.tcx.item_path_str(variant.did);
|
||||||
Some(variant_path.trim_left_matches("std::prelude::v1::").to_string())
|
Some(variant_path.trim_start_matches("std::prelude::v1::").to_string())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -519,7 +519,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
||||||
let suffix_suggestion = format!(
|
let suffix_suggestion = format!(
|
||||||
"{}{}{}{}",
|
"{}{}{}{}",
|
||||||
if needs_paren { "(" } else { "" },
|
if needs_paren { "(" } else { "" },
|
||||||
src.trim_right_matches(&checked_ty.to_string()),
|
src.trim_end_matches(&checked_ty.to_string()),
|
||||||
expected_ty,
|
expected_ty,
|
||||||
if needs_paren { ")" } else { "" },
|
if needs_paren { ")" } else { "" },
|
||||||
);
|
);
|
||||||
|
|
|
@ -35,7 +35,7 @@ fn extract_leading_metadata<'a>(s: &'a str) -> (Vec<&'a str>, &'a str) {
|
||||||
for line in s.lines() {
|
for line in s.lines() {
|
||||||
if line.starts_with("# ") || line.starts_with("%") {
|
if line.starts_with("# ") || line.starts_with("%") {
|
||||||
// trim the whitespace after the symbol
|
// trim the whitespace after the symbol
|
||||||
metadata.push(line[1..].trim_left());
|
metadata.push(line[1..].trim_start());
|
||||||
count += line.len() + 1;
|
count += line.len() + 1;
|
||||||
} else {
|
} else {
|
||||||
return (metadata, &s[count..]);
|
return (metadata, &s[count..]);
|
||||||
|
|
|
@ -294,23 +294,23 @@ impl<'a, 'tcx, 'rcx, 'cstore> DocFolder for LinkCollector<'a, 'tcx, 'rcx, 'cstor
|
||||||
"trait@", "union@"].iter()
|
"trait@", "union@"].iter()
|
||||||
.find(|p| link.starts_with(**p)) {
|
.find(|p| link.starts_with(**p)) {
|
||||||
kind = PathKind::Type;
|
kind = PathKind::Type;
|
||||||
link.trim_left_matches(prefix)
|
link.trim_start_matches(prefix)
|
||||||
} else if let Some(prefix) =
|
} else if let Some(prefix) =
|
||||||
["const@", "static@",
|
["const@", "static@",
|
||||||
"value@", "function@", "mod@",
|
"value@", "function@", "mod@",
|
||||||
"fn@", "module@", "method@"]
|
"fn@", "module@", "method@"]
|
||||||
.iter().find(|p| link.starts_with(**p)) {
|
.iter().find(|p| link.starts_with(**p)) {
|
||||||
kind = PathKind::Value;
|
kind = PathKind::Value;
|
||||||
link.trim_left_matches(prefix)
|
link.trim_start_matches(prefix)
|
||||||
} else if link.ends_with("()") {
|
} else if link.ends_with("()") {
|
||||||
kind = PathKind::Value;
|
kind = PathKind::Value;
|
||||||
link.trim_right_matches("()")
|
link.trim_end_matches("()")
|
||||||
} else if link.starts_with("macro@") {
|
} else if link.starts_with("macro@") {
|
||||||
kind = PathKind::Macro;
|
kind = PathKind::Macro;
|
||||||
link.trim_left_matches("macro@")
|
link.trim_start_matches("macro@")
|
||||||
} else if link.ends_with('!') {
|
} else if link.ends_with('!') {
|
||||||
kind = PathKind::Macro;
|
kind = PathKind::Macro;
|
||||||
link.trim_right_matches('!')
|
link.trim_end_matches('!')
|
||||||
} else {
|
} else {
|
||||||
&link[..]
|
&link[..]
|
||||||
}.trim();
|
}.trim();
|
||||||
|
|
|
@ -95,7 +95,7 @@ fn unindent(s: &str) -> String {
|
||||||
});
|
});
|
||||||
|
|
||||||
if !lines.is_empty() {
|
if !lines.is_empty() {
|
||||||
let mut unindented = vec![ lines[0].trim_left().to_string() ];
|
let mut unindented = vec![ lines[0].trim_start().to_string() ];
|
||||||
unindented.extend_from_slice(&lines[1..].iter().map(|&line| {
|
unindented.extend_from_slice(&lines[1..].iter().map(|&line| {
|
||||||
if line.chars().all(|c| c.is_whitespace()) {
|
if line.chars().all(|c| c.is_whitespace()) {
|
||||||
line.to_string()
|
line.to_string()
|
||||||
|
|
|
@ -3493,7 +3493,7 @@ mod tests {
|
||||||
|
|
||||||
// Helper function for counting indents
|
// Helper function for counting indents
|
||||||
fn indents(source: &str) -> usize {
|
fn indents(source: &str) -> usize {
|
||||||
let trimmed = source.trim_left_matches(' ');
|
let trimmed = source.trim_start_matches(' ');
|
||||||
source.len() - trimmed.len()
|
source.len() - trimmed.len()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -533,6 +533,7 @@ impl<T: Error> Error for Box<T> {
|
||||||
Error::description(&**self)
|
Error::description(&**self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
fn cause(&self) -> Option<&dyn Error> {
|
fn cause(&self) -> Option<&dyn Error> {
|
||||||
Error::cause(&**self)
|
Error::cause(&**self)
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,6 @@ pub use self::os_str::{OsString, OsStr};
|
||||||
#[stable(feature = "raw_os", since = "1.1.0")]
|
#[stable(feature = "raw_os", since = "1.1.0")]
|
||||||
pub use core::ffi::c_void;
|
pub use core::ffi::c_void;
|
||||||
|
|
||||||
#[cfg(not(stage0))]
|
|
||||||
#[unstable(feature = "c_variadic",
|
#[unstable(feature = "c_variadic",
|
||||||
reason = "the `c_variadic` feature has not been properly tested on \
|
reason = "the `c_variadic` feature has not been properly tested on \
|
||||||
all supported platforms",
|
all supported platforms",
|
||||||
|
|
|
@ -555,6 +555,7 @@ impl error::Error for Error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
fn cause(&self) -> Option<&dyn error::Error> {
|
fn cause(&self) -> Option<&dyn error::Error> {
|
||||||
match self.repr {
|
match self.repr {
|
||||||
Repr::Os(..) => None,
|
Repr::Os(..) => None,
|
||||||
|
|
|
@ -317,10 +317,6 @@
|
||||||
|
|
||||||
#![default_lib_allocator]
|
#![default_lib_allocator]
|
||||||
|
|
||||||
#[cfg(stage0)]
|
|
||||||
#[global_allocator]
|
|
||||||
static ALLOC: alloc::System = alloc::System;
|
|
||||||
|
|
||||||
// Explicitly import the prelude. The compiler uses this same unstable attribute
|
// Explicitly import the prelude. The compiler uses this same unstable attribute
|
||||||
// to import the prelude implicitly when building crates that depend on std.
|
// to import the prelude implicitly when building crates that depend on std.
|
||||||
#[prelude_import]
|
#[prelude_import]
|
||||||
|
|
|
@ -264,7 +264,7 @@ impl RefUnwindSafe for atomic::AtomicI32 {}
|
||||||
#[cfg(target_has_atomic = "64")]
|
#[cfg(target_has_atomic = "64")]
|
||||||
#[unstable(feature = "integer_atomics", issue = "32976")]
|
#[unstable(feature = "integer_atomics", issue = "32976")]
|
||||||
impl RefUnwindSafe for atomic::AtomicI64 {}
|
impl RefUnwindSafe for atomic::AtomicI64 {}
|
||||||
#[cfg(all(not(stage0), target_has_atomic = "128"))]
|
#[cfg(target_has_atomic = "128")]
|
||||||
#[unstable(feature = "integer_atomics", issue = "32976")]
|
#[unstable(feature = "integer_atomics", issue = "32976")]
|
||||||
impl RefUnwindSafe for atomic::AtomicI128 {}
|
impl RefUnwindSafe for atomic::AtomicI128 {}
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ impl RefUnwindSafe for atomic::AtomicU32 {}
|
||||||
#[cfg(target_has_atomic = "64")]
|
#[cfg(target_has_atomic = "64")]
|
||||||
#[unstable(feature = "integer_atomics", issue = "32976")]
|
#[unstable(feature = "integer_atomics", issue = "32976")]
|
||||||
impl RefUnwindSafe for atomic::AtomicU64 {}
|
impl RefUnwindSafe for atomic::AtomicU64 {}
|
||||||
#[cfg(all(not(stage0), target_has_atomic = "128"))]
|
#[cfg(target_has_atomic = "128")]
|
||||||
#[unstable(feature = "integer_atomics", issue = "32976")]
|
#[unstable(feature = "integer_atomics", issue = "32976")]
|
||||||
impl RefUnwindSafe for atomic::AtomicU128 {}
|
impl RefUnwindSafe for atomic::AtomicU128 {}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ pub fn error_string(mut errnum: i32) -> String {
|
||||||
match String::from_utf16(&buf[..res]) {
|
match String::from_utf16(&buf[..res]) {
|
||||||
Ok(mut msg) => {
|
Ok(mut msg) => {
|
||||||
// Trim trailing CRLF inserted by FormatMessageW
|
// Trim trailing CRLF inserted by FormatMessageW
|
||||||
let len = msg.trim_right().len();
|
let len = msg.trim_end().len();
|
||||||
msg.truncate(len);
|
msg.truncate(len);
|
||||||
msg
|
msg
|
||||||
},
|
},
|
||||||
|
|
|
@ -141,6 +141,7 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt,
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(deprecated)]
|
||||||
pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt,
|
pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt,
|
||||||
span: Span,
|
span: Span,
|
||||||
token_tree: &[TokenTree])
|
token_tree: &[TokenTree])
|
||||||
|
|
|
@ -579,7 +579,7 @@ impl SourceMap {
|
||||||
match self.span_to_prev_source(sp) {
|
match self.span_to_prev_source(sp) {
|
||||||
Err(_) => None,
|
Err(_) => None,
|
||||||
Ok(source) => source.split('\n').last().map(|last_line| {
|
Ok(source) => source.split('\n').last().map(|last_line| {
|
||||||
last_line.len() - last_line.trim_left().len()
|
last_line.len() - last_line.trim_start().len()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -593,7 +593,7 @@ impl SourceMap {
|
||||||
/// if no character could be found or if an error occurred while retrieving the code snippet.
|
/// if no character could be found or if an error occurred while retrieving the code snippet.
|
||||||
pub fn span_extend_to_prev_char(&self, sp: Span, c: char) -> Span {
|
pub fn span_extend_to_prev_char(&self, sp: Span, c: char) -> Span {
|
||||||
if let Ok(prev_source) = self.span_to_prev_source(sp) {
|
if let Ok(prev_source) = self.span_to_prev_source(sp) {
|
||||||
let prev_source = prev_source.rsplit(c).nth(0).unwrap_or("").trim_left();
|
let prev_source = prev_source.rsplit(c).nth(0).unwrap_or("").trim_start();
|
||||||
if !prev_source.is_empty() && !prev_source.contains('\n') {
|
if !prev_source.is_empty() && !prev_source.contains('\n') {
|
||||||
return sp.with_lo(BytePos(sp.lo().0 - prev_source.len() as u32));
|
return sp.with_lo(BytePos(sp.lo().0 - prev_source.len() as u32));
|
||||||
}
|
}
|
||||||
|
@ -613,7 +613,7 @@ impl SourceMap {
|
||||||
for ws in &[" ", "\t", "\n"] {
|
for ws in &[" ", "\t", "\n"] {
|
||||||
let pat = pat.to_owned() + ws;
|
let pat = pat.to_owned() + ws;
|
||||||
if let Ok(prev_source) = self.span_to_prev_source(sp) {
|
if let Ok(prev_source) = self.span_to_prev_source(sp) {
|
||||||
let prev_source = prev_source.rsplit(&pat).nth(0).unwrap_or("").trim_left();
|
let prev_source = prev_source.rsplit(&pat).nth(0).unwrap_or("").trim_start();
|
||||||
if !prev_source.is_empty() && (!prev_source.contains('\n') || accept_newlines) {
|
if !prev_source.is_empty() && (!prev_source.contains('\n') || accept_newlines) {
|
||||||
return sp.with_lo(BytePos(sp.lo().0 - prev_source.len() as u32));
|
return sp.with_lo(BytePos(sp.lo().0 - prev_source.len() as u32));
|
||||||
}
|
}
|
||||||
|
@ -627,7 +627,7 @@ impl SourceMap {
|
||||||
pub fn span_until_char(&self, sp: Span, c: char) -> Span {
|
pub fn span_until_char(&self, sp: Span, c: char) -> Span {
|
||||||
match self.span_to_snippet(sp) {
|
match self.span_to_snippet(sp) {
|
||||||
Ok(snippet) => {
|
Ok(snippet) => {
|
||||||
let snippet = snippet.split(c).nth(0).unwrap_or("").trim_right();
|
let snippet = snippet.split(c).nth(0).unwrap_or("").trim_end();
|
||||||
if !snippet.is_empty() && !snippet.contains('\n') {
|
if !snippet.is_empty() && !snippet.contains('\n') {
|
||||||
sp.with_hi(BytePos(sp.lo().0 + snippet.len() as u32))
|
sp.with_hi(BytePos(sp.lo().0 + snippet.len() as u32))
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -57,7 +57,7 @@ impl Ident {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn without_first_quote(self) -> Ident {
|
pub fn without_first_quote(self) -> Ident {
|
||||||
Ident::new(Symbol::intern(self.as_str().trim_left_matches('\'')), self.span)
|
Ident::new(Symbol::intern(self.as_str().trim_start_matches('\'')), self.span)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// "Normalize" ident for use in comparisons using "item hygiene".
|
/// "Normalize" ident for use in comparisons using "item hygiene".
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
# source tarball for a stable release you'll likely see `1.x.0` for rustc and
|
# 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`.
|
# `0.x.0` for Cargo where they were released on `date`.
|
||||||
|
|
||||||
date: 2018-11-21
|
date: 2018-12-09
|
||||||
rustc: beta
|
rustc: beta
|
||||||
cargo: beta
|
cargo: beta
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 28fb20034a5bb42ea589664de2617dd1840506d3
|
Subproject commit 2cf1f5dda2f7ed84e94c4d32f643e0f1f15352f0
|
|
@ -511,7 +511,11 @@ pub fn test_opts(config: &Config) -> test::TestOpts {
|
||||||
test::TestOpts {
|
test::TestOpts {
|
||||||
filter: config.filter.clone(),
|
filter: config.filter.clone(),
|
||||||
filter_exact: config.filter_exact,
|
filter_exact: config.filter_exact,
|
||||||
run_ignored: config.run_ignored,
|
run_ignored: if config.run_ignored {
|
||||||
|
test::RunIgnored::Yes
|
||||||
|
} else {
|
||||||
|
test::RunIgnored::No
|
||||||
|
},
|
||||||
format: if config.quiet {
|
format: if config.quiet {
|
||||||
test::OutputFormat::Terse
|
test::OutputFormat::Terse
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue