Skip to content

Commit

Permalink
Auto merge of #43246 - frewsxcv:rollup, r=frewsxcv
Browse files Browse the repository at this point in the history
Rollup of 8 pull requests

- Successful merges: #43074, #43145, #43159, #43202, #43222, #43228, #43229, #43240
- Failed merges:
  • Loading branch information
bors committed Jul 15, 2017
2 parents c4373bd + e3825ec commit a783fe2
Show file tree
Hide file tree
Showing 12 changed files with 89 additions and 21 deletions.
11 changes: 10 additions & 1 deletion src/bootstrap/step.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

use std::collections::{BTreeMap, HashSet, HashMap};
use std::mem;
use std::path::PathBuf;
use std::process;

use check::{self, TestKind};
Expand Down Expand Up @@ -1209,11 +1210,19 @@ invalid rule dependency graph detected, was a rule added and maybe typo'd?
if paths.len() == 0 && rule.default {
Some((rule, 0))
} else {
paths.iter().position(|path| path.ends_with(rule.path))
paths.iter()
.position(|path| path.ends_with(rule.path))
.map(|priority| (rule, priority))
}
}).collect();

if rules.is_empty() &&
!paths.get(0).unwrap_or(&PathBuf::new())
.ends_with("nonexistent/path/to/trigger/cargo/metadata") {
println!("\nNothing to run...\n");
process::exit(1);
}

rules.sort_by_key(|&(_, priority)| priority);

rules.into_iter().flat_map(|(rule, _)| {
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book
Submodule book updated 33 files
+2 −1 second-edition/dictionary.txt
+43 −30 second-edition/nostarch/chapter05.md
+144 −215 second-edition/nostarch/chapter11.md
+570 −883 second-edition/nostarch/chapter12.md
+ second-edition/nostarch/odt/chapter05.docx
+ second-edition/nostarch/odt/chapter11.docx
+ second-edition/nostarch/odt/chapter12.docx
+3 −3 second-edition/src/SUMMARY.md
+6 −2 second-edition/src/appendix-06-translation.md
+13 −0 second-edition/src/ch01-01-installation.md
+1 −1 second-edition/src/ch04-01-what-is-ownership.md
+34 −13 second-edition/src/ch05-01-defining-structs.md
+10 −10 second-edition/src/ch05-02-example-structs.md
+8 −8 second-edition/src/ch05-03-method-syntax.md
+3 −3 second-edition/src/ch06-02-match.md
+1 −1 second-edition/src/ch08-02-strings.md
+14 −15 second-edition/src/ch11-00-testing.md
+71 −102 second-edition/src/ch11-01-writing-tests.md
+15 −38 second-edition/src/ch11-02-running-tests.md
+31 −47 second-edition/src/ch11-03-test-organization.md
+36 −49 second-edition/src/ch12-00-an-io-project.md
+57 −94 second-edition/src/ch12-01-accepting-command-line-arguments.md
+42 −46 second-edition/src/ch12-02-reading-a-file.md
+206 −324 second-edition/src/ch12-03-improving-error-handling-and-modularity.md
+78 −119 second-edition/src/ch12-04-testing-the-librarys-functionality.md
+79 −125 second-edition/src/ch12-05-working-with-environment-variables.md
+60 −92 second-edition/src/ch12-06-writing-to-stderr-instead-of-stdout.md
+5 −5 second-edition/src/ch15-05-interior-mutability.md
+2 −2 second-edition/src/ch17-03-oo-design-patterns.md
+30 −30 second-edition/src/ch19-02-advanced-lifetimes.md
+4 −4 second-edition/src/ch19-04-advanced-types.md
+1 −0 second-edition/theme/index.hbs
+14 −1 second-edition/tools/docx-to-md.xsl
2 changes: 1 addition & 1 deletion src/doc/nomicon
2 changes: 1 addition & 1 deletion src/doc/reference
8 changes: 8 additions & 0 deletions src/libcore/iter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -359,11 +359,19 @@ impl<I> Iterator for Rev<I> where I: DoubleEndedIterator {
#[inline]
fn size_hint(&self) -> (usize, Option<usize>) { self.iter.size_hint() }

#[inline]
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where P: FnMut(&Self::Item) -> bool
{
self.iter.rfind(predicate)
}

#[inline]
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool
{
self.iter.position(predicate)
}
}

#[stable(feature = "rust1", since = "1.0.0")]
Expand Down
5 changes: 4 additions & 1 deletion src/libcore/ptr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,10 @@ unsafe fn swap_nonoverlapping_bytes(x: *mut u8, y: *mut u8, len: usize) {
// #[repr(simd)], even if we don't actually use this struct directly.
//
// FIXME repr(simd) broken on emscripten and redox
#[cfg_attr(not(any(target_os = "emscripten", target_os = "redox")), repr(simd))]
// It's also broken on big-endian powerpc64 and s390x. #42778
#[cfg_attr(not(any(target_os = "emscripten", target_os = "redox",
target_endian = "big")),
repr(simd))]
struct Block(u64, u64, u64, u64);
struct UnalignedBlock(u64, u64, u64, u64);

Expand Down
38 changes: 38 additions & 0 deletions src/libcore/str/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,37 @@ impl<'a> Iterator for Bytes<'a> {
fn nth(&mut self, n: usize) -> Option<Self::Item> {
self.0.nth(n)
}

#[inline]
fn all<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool {
self.0.all(f)
}

#[inline]
fn any<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool {
self.0.any(f)
}

#[inline]
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
P: FnMut(&Self::Item) -> bool
{
self.0.find(predicate)
}

#[inline]
fn position<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool
{
self.0.position(predicate)
}

#[inline]
fn rposition<P>(&mut self, predicate: P) -> Option<usize> where
P: FnMut(Self::Item) -> bool
{
self.0.rposition(predicate)
}
}

#[stable(feature = "rust1", since = "1.0.0")]
Expand All @@ -718,6 +749,13 @@ impl<'a> DoubleEndedIterator for Bytes<'a> {
fn next_back(&mut self) -> Option<u8> {
self.0.next_back()
}

#[inline]
fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item> where
P: FnMut(&Self::Item) -> bool
{
self.0.rfind(predicate)
}
}

#[stable(feature = "rust1", since = "1.0.0")]
Expand Down
20 changes: 10 additions & 10 deletions src/libstd/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,12 +135,12 @@ use sys::path::{is_sep_byte, is_verbatim_sep, MAIN_SEP_STR, parse_prefix};
/// get_path_prefix(r"\\?\pictures\kittens"));
/// assert_eq!(VerbatimUNC(OsStr::new("server"), OsStr::new("share")),
/// get_path_prefix(r"\\?\UNC\server\share"));
/// assert_eq!(VerbatimDisk('C' as u8), get_path_prefix(r"\\?\c:\"));
/// assert_eq!(VerbatimDisk(b'C'), get_path_prefix(r"\\?\c:\"));
/// assert_eq!(DeviceNS(OsStr::new("BrainInterface")),
/// get_path_prefix(r"\\.\BrainInterface"));
/// assert_eq!(UNC(OsStr::new("server"), OsStr::new("share")),
/// get_path_prefix(r"\\server\share"));
/// assert_eq!(Disk('C' as u8), get_path_prefix(r"C:\Users\Rust\Pictures\Ferris"));
/// assert_eq!(Disk(b'C'), get_path_prefix(r"C:\Users\Rust\Pictures\Ferris"));
/// # }
/// ```
#[derive(Copy, Clone, Debug, Hash, PartialOrd, Ord, PartialEq, Eq)]
Expand Down Expand Up @@ -235,10 +235,10 @@ impl<'a> Prefix<'a> {
///
/// assert!(Verbatim(OsStr::new("pictures")).is_verbatim());
/// assert!(VerbatimUNC(OsStr::new("server"), OsStr::new("share")).is_verbatim());
/// assert!(VerbatimDisk('C' as u8).is_verbatim());
/// assert!(VerbatimDisk(b'C').is_verbatim());
/// assert!(!DeviceNS(OsStr::new("BrainInterface")).is_verbatim());
/// assert!(!UNC(OsStr::new("server"), OsStr::new("share")).is_verbatim());
/// assert!(!Disk('C' as u8).is_verbatim());
/// assert!(!Disk(b'C').is_verbatim());
/// ```
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
Expand Down Expand Up @@ -401,7 +401,7 @@ enum State {
/// let path = Path::new(r"c:\you\later\");
/// match path.components().next().unwrap() {
/// Component::Prefix(prefix_component) => {
/// assert_eq!(Prefix::Disk('C' as u8), prefix_component.kind());
/// assert_eq!(Prefix::Disk(b'C'), prefix_component.kind());
/// assert_eq!(OsStr::new("c:"), prefix_component.as_os_str());
/// }
/// _ => unreachable!(),
Expand Down Expand Up @@ -1040,7 +1040,7 @@ impl<'a> cmp::Ord for Components<'a> {
/// [`Deref`]: ../ops/trait.Deref.html
///
/// More details about the overall approach can be found in
/// the module documentation.
/// the [module documentation](index.html).
///
/// # Examples
///
Expand Down Expand Up @@ -1186,7 +1186,7 @@ impl PathBuf {
self.inner.push(path);
}

/// Truncate `self` to [`self.parent`].
/// Truncates `self` to [`self.parent`].
///
/// Returns `false` and does nothing if [`self.file_name`] is [`None`].
/// Otherwise, returns `true`.
Expand Down Expand Up @@ -1512,7 +1512,7 @@ impl AsRef<OsStr> for PathBuf {
/// [`PathBuf`]: struct.PathBuf.html
///
/// More details about the overall approach can be found in
/// the module documentation.
/// the [module documentation](index.html).
///
/// # Examples
///
Expand Down Expand Up @@ -1689,7 +1689,7 @@ impl Path {
self.has_root() && (cfg!(unix) || cfg!(target_os = "redox") || self.prefix().is_some())
}

/// Return `false` if the `Path` is relative, i.e. not absolute.
/// Returns `true` if the `Path` is relative, i.e. not absolute.
///
/// See [`is_absolute`]'s documentation for more details.
///
Expand Down Expand Up @@ -2019,7 +2019,7 @@ impl Path {
/// * Repeated separators are ignored, so `a/b` and `a//b` both have
/// `a` and `b` as components.
///
/// * Occurentces of `.` are normalized away, exept if they are at the
/// * Occurences of `.` are normalized away, except if they are at the
/// beginning of the path. For example, `a/./b`, `a/b/`, `a/b/.` and
/// `a/b` all have `a` and `b` as components, but `./a/b` starts with
/// an additional [`CurDir`] component.
Expand Down
15 changes: 12 additions & 3 deletions src/libstd/sys/redox/backtrace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,25 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use libc;
use io;
use sys_common::backtrace::Frame;

pub use sys_common::gnu::libbacktrace::*;
pub use sys_common::gnu::libbacktrace::{foreach_symbol_fileline, resolve_symname};
pub struct BacktraceContext;

#[inline(never)]
pub fn unwind_backtrace(frames: &mut [Frame])
pub fn unwind_backtrace(_frames: &mut [Frame])
-> io::Result<(usize, BacktraceContext)>
{
Ok((0, BacktraceContext))
}

pub mod gnu {
use io;
use fs;
use libc::c_char;

pub fn get_executable_filename() -> io::Result<(Vec<c_char>, fs::File)> {
Err(io::Error::new(io::ErrorKind::Other, "Not implemented"))
}
}
2 changes: 1 addition & 1 deletion src/libstd/sys/redox/net/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ impl TcpStream {
Ok(TcpStream(File::open(&Path::new(path.as_str()), &options)?))
}

pub fn connect_timeout(_addr: &SocketAddr, _timeout: Duration) -> Result<()> {
pub fn connect_timeout(_addr: &SocketAddr, _timeout: Duration) -> Result<TcpStream> {
Err(Error::new(ErrorKind::Other, "TcpStream::connect_timeout not implemented"))
}

Expand Down
2 changes: 1 addition & 1 deletion src/libstd/sys/windows/ext/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ pub fn symlink_file<P: AsRef<Path>, Q: AsRef<Path>>(src: P, dst: Q)
/// use std::os::windows::fs;
///
/// # fn foo() -> std::io::Result<()> {
/// fs::symlink_file("a", "b")?;
/// fs::symlink_dir("a", "b")?;
/// # Ok(())
/// # }
/// ```
Expand Down
3 changes: 2 additions & 1 deletion src/libstd/sys_common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ pub mod net;

#[cfg(feature = "backtrace")]
#[cfg(any(all(unix, not(any(target_os = "macos", target_os = "ios", target_os = "emscripten"))),
all(windows, target_env = "gnu")))]
all(windows, target_env = "gnu"),
target_os = "redox"))]
pub mod gnu;

// common error constructors
Expand Down

0 comments on commit a783fe2

Please sign in to comment.