Skip to content

Commit

Permalink
Auto merge of rust-lang#55462 - pietroalbini:rollup, r=pietroalbini
Browse files Browse the repository at this point in the history
Rollup of 9 pull requests

Successful merges:

 - rust-lang#54965 (update tcp stream documentation)
 - rust-lang#55269 (fix typos in various places)
 - rust-lang#55384 (Avoid unnecessary allocations in `float_lit` and `integer_lit`.)
 - rust-lang#55423 (back out bogus `Ok`-wrapping suggestion on `?` arm type mismatch)
 - rust-lang#55426 (Make a bunch of trivial methods of NonNull be `#[inline]`)
 - rust-lang#55438 (Avoid directly catching BaseException in bootstrap configure script)
 - rust-lang#55439 (Remove unused sys import from generate-deriving-span-tests)
 - rust-lang#55440 (Remove unreachable code in hasClass function in Rustdoc)
 - rust-lang#55447 (Fix invalid path in generate-deriving-span-tests.py.)

Failed merges:

r? @ghost
  • Loading branch information
bors committed Oct 29, 2018
2 parents 4e88b73 + eb00b47 commit d586d5d
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 56 deletions.
2 changes: 1 addition & 1 deletion src/bootstrap/configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ def is_number(value):
try:
float(value)
return True
except:
except ValueError:
return False

# Here we walk through the constructed configuration we have from the parsed
Expand Down
4 changes: 2 additions & 2 deletions src/etc/generate-deriving-span-tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
sample usage: src/etc/generate-deriving-span-tests.py
"""

import sys, os, datetime, stat, re
import os, datetime, stat, re

TEST_DIR = os.path.abspath(
os.path.join(os.path.dirname(__file__), '../test/compile-fail'))
os.path.join(os.path.dirname(__file__), '../test/ui/derives/'))

YEAR = datetime.datetime.now().year

Expand Down
14 changes: 14 additions & 0 deletions src/libcore/ptr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2867,6 +2867,7 @@ impl<T: Sized> NonNull<T> {
/// sentinel value. Types that lazily allocate must track initialization by
/// some other means.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub fn dangling() -> Self {
unsafe {
let ptr = mem::align_of::<T>() as *mut T;
Expand All @@ -2882,12 +2883,14 @@ impl<T: ?Sized> NonNull<T> {
///
/// `ptr` must be non-null.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub const unsafe fn new_unchecked(ptr: *mut T) -> Self {
NonNull { pointer: NonZero(ptr as _) }
}

/// Creates a new `NonNull` if `ptr` is non-null.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub fn new(ptr: *mut T) -> Option<Self> {
if !ptr.is_null() {
Some(NonNull { pointer: NonZero(ptr as _) })
Expand All @@ -2898,6 +2901,7 @@ impl<T: ?Sized> NonNull<T> {

/// Acquires the underlying `*mut` pointer.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub fn as_ptr(self) -> *mut T {
self.pointer.0 as *mut T
}
Expand All @@ -2908,6 +2912,7 @@ impl<T: ?Sized> NonNull<T> {
/// it were actually an instance of T that is getting borrowed. If a longer
/// (unbound) lifetime is needed, use `&*my_ptr.as_ptr()`.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub unsafe fn as_ref(&self) -> &T {
&*self.as_ptr()
}
Expand All @@ -2918,12 +2923,14 @@ impl<T: ?Sized> NonNull<T> {
/// it were actually an instance of T that is getting borrowed. If a longer
/// (unbound) lifetime is needed, use `&mut *my_ptr.as_ptr()`.
#[stable(feature = "nonnull", since = "1.25.0")]
#[inline]
pub unsafe fn as_mut(&mut self) -> &mut T {
&mut *self.as_ptr()
}

/// Cast to a pointer of another type
#[stable(feature = "nonnull_cast", since = "1.27.0")]
#[inline]
pub fn cast<U>(self) -> NonNull<U> {
unsafe {
NonNull::new_unchecked(self.as_ptr() as *mut U)
Expand Down Expand Up @@ -2963,48 +2970,55 @@ impl<T: ?Sized> Eq for NonNull<T> {}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<T: ?Sized> PartialEq for NonNull<T> {
#[inline]
fn eq(&self, other: &Self) -> bool {
self.as_ptr() == other.as_ptr()
}
}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<T: ?Sized> Ord for NonNull<T> {
#[inline]
fn cmp(&self, other: &Self) -> Ordering {
self.as_ptr().cmp(&other.as_ptr())
}
}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<T: ?Sized> PartialOrd for NonNull<T> {
#[inline]
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
self.as_ptr().partial_cmp(&other.as_ptr())
}
}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<T: ?Sized> hash::Hash for NonNull<T> {
#[inline]
fn hash<H: hash::Hasher>(&self, state: &mut H) {
self.as_ptr().hash(state)
}
}

#[unstable(feature = "ptr_internals", issue = "0")]
impl<T: ?Sized> From<Unique<T>> for NonNull<T> {
#[inline]
fn from(unique: Unique<T>) -> Self {
NonNull { pointer: unique.pointer }
}
}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<'a, T: ?Sized> From<&'a mut T> for NonNull<T> {
#[inline]
fn from(reference: &'a mut T) -> Self {
NonNull { pointer: NonZero(reference as _) }
}
}

#[stable(feature = "nonnull", since = "1.25.0")]
impl<'a, T: ?Sized> From<&'a T> for NonNull<T> {
#[inline]
fn from(reference: &'a T) -> Self {
NonNull { pointer: NonZero(reference as _) }
}
Expand Down
12 changes: 1 addition & 11 deletions src/librustc/infer/error_reporting/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -479,17 +479,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
err.span_label(arm_span, msg);
}
}
hir::MatchSource::TryDesugar => {
// Issue #51632
if let Ok(try_snippet) = self.tcx.sess.source_map().span_to_snippet(arm_span) {
err.span_suggestion_with_applicability(
arm_span,
"try wrapping with a success variant",
format!("Ok({})", try_snippet),
Applicability::MachineApplicable,
);
}
}
hir::MatchSource::TryDesugar => {}
_ => {
let msg = "match arm with an incompatible type";
if self.tcx.sess.source_map().is_multiline(arm_span) {
Expand Down
5 changes: 0 additions & 5 deletions src/librustdoc/html/static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,6 @@
var end = start + className.length;
return !(end < elemClass.length && elemClass[end] !== ' ');
}
if (start > 0 && elemClass[start - 1] !== ' ') {
return false;
}
var end = start + className.length;
return !(end < elemClass.length && elemClass[end] !== ' ');
}
return false;
}
Expand Down
23 changes: 19 additions & 4 deletions src/libsyntax/parse/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -494,8 +494,17 @@ fn float_lit(s: &str, suffix: Option<Symbol>, diag: Option<(Span, &Handler)>)
-> Option<ast::LitKind> {
debug!("float_lit: {:?}, {:?}", s, suffix);
// FIXME #2252: bounds checking float literals is deferred until trans
let s = s.chars().filter(|&c| c != '_').collect::<String>();
filtered_float_lit(Symbol::intern(&s), suffix, diag)

// Strip underscores without allocating a new String unless necessary.
let s2;
let s = if s.chars().any(|c| c == '_') {
s2 = s.chars().filter(|&c| c != '_').collect::<String>();
&s2
} else {
s
};

filtered_float_lit(Symbol::intern(s), suffix, diag)
}

/// Parse a string representing a byte literal into its final form. Similar to `char_lit`
Expand Down Expand Up @@ -591,8 +600,14 @@ fn integer_lit(s: &str, suffix: Option<Symbol>, diag: Option<(Span, &Handler)>)
-> Option<ast::LitKind> {
// s can only be ascii, byte indexing is fine

let s2 = s.chars().filter(|&c| c != '_').collect::<String>();
let mut s = &s2[..];
// Strip underscores without allocating a new String unless necessary.
let s2;
let mut s = if s.chars().any(|c| c == '_') {
s2 = s.chars().filter(|&c| c != '_').collect::<String>();
&s2
} else {
s
};

debug!("integer_lit: {}, {:?}", s, suffix);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// run-rustfix

#![allow(dead_code)]

fn missing_discourses() -> Result<isize, ()> {
Expand All @@ -19,7 +17,6 @@ fn missing_discourses() -> Result<isize, ()> {
fn forbidden_narratives() -> Result<isize, ()> {
missing_discourses()?
//~^ ERROR try expression alternatives have incompatible types
//~| HELP try wrapping with a success variant
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
error[E0308]: try expression alternatives have incompatible types
--> $DIR/issue-51632-try-desugar-incompatible-types.rs:20:5
--> $DIR/issue-51632-try-desugar-incompatible-types.rs:18:5
|
LL | missing_discourses()?
| ^^^^^^^^^^^^^^^^^^^^^
| |
| expected enum `std::result::Result`, found isize
| help: try wrapping with a success variant: `Ok(missing_discourses()?)`
| ^^^^^^^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found isize
|
= note: expected type `std::result::Result<isize, ()>`
found type `isize`
Expand Down

0 comments on commit d586d5d

Please sign in to comment.