about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-05-26 15:31:49 +0000
committerbors <bors@rust-lang.org>2017-05-26 15:31:49 +0000
commit256e497fe63bf4b13f7c0b58fa17360ca849c54d (patch)
tree48ce0f683bf00fa6f1225aa1a77ba735b03412ad
parentc732446eddeb2d387763c7974d7e78217e44519a (diff)
parent252a28638396d72f4c3a3dff6717b7aaddc017cc (diff)
downloadrust-256e497fe63bf4b13f7c0b58fa17360ca849c54d.tar.gz
rust-256e497fe63bf4b13f7c0b58fa17360ca849c54d.zip
Auto merge of #42245 - frewsxcv:rollup, r=frewsxcv
Rollup of 7 pull requests

- Successful merges: #42169, #42215, #42216, #42224, #42230, #42236, #42241
- Failed merges:
-rw-r--r--src/doc/unstable-book/src/library-features/step-trait.md4
-rw-r--r--src/libcollections/slice.rs14
-rw-r--r--src/libcollections/str.rs13
-rw-r--r--src/libcore/iter/mod.rs2
-rw-r--r--src/libcore/iter/range.rs8
-rw-r--r--src/librustc_llvm/Cargo.lock22
-rw-r--r--src/librustc_passes/consts.rs2
-rw-r--r--src/librustc_trans/mir/block.rs2
-rw-r--r--src/librustc_typeck/astconv.rs2
-rw-r--r--src/libstd/fs.rs2
-rw-r--r--src/test/compile-fail/E0229.rs2
-rw-r--r--src/test/compile-fail/issue-23543.rs2
-rw-r--r--src/test/compile-fail/issue-23544.rs2
-rw-r--r--src/test/compile-fail/issue-36379.rs16
-rw-r--r--src/test/compile-fail/issue-37550.rs18
-rw-r--r--src/test/compile-fail/issue-37665.rs20
-rw-r--r--src/test/compile-fail/issue-38160.rs31
-rw-r--r--src/test/compile-fail/issue-38954.rs16
-rw-r--r--src/test/compile-fail/issue-39362.rs28
-rw-r--r--src/test/run-pass/issue-16671.rs2
20 files changed, 168 insertions, 40 deletions
diff --git a/src/doc/unstable-book/src/library-features/step-trait.md b/src/doc/unstable-book/src/library-features/step-trait.md
index e53ca13f7b6..56050c20c69 100644
--- a/src/doc/unstable-book/src/library-features/step-trait.md
+++ b/src/doc/unstable-book/src/library-features/step-trait.md
@@ -1,7 +1,7 @@
 # `step_trait`
 
-The tracking issue for this feature is: [#27741]
+The tracking issue for this feature is: [#42168]
 
-[#27741]: https://github.com/rust-lang/rust/issues/27741
+[#42168]: https://github.com/rust-lang/rust/issues/42168
 
 ------------------------
diff --git a/src/libcollections/slice.rs b/src/libcollections/slice.rs
index 5696f5fe6a7..233ff8a5154 100644
--- a/src/libcollections/slice.rs
+++ b/src/libcollections/slice.rs
@@ -393,7 +393,12 @@ impl<T> [T] {
     }
 
     /// Returns a reference to an element or subslice, without doing bounds
-    /// checking. So use it very carefully!
+    /// checking.
+    ///
+    /// This is generally not recommended, use with caution! For a safe
+    /// alternative see [`get`].
+    ///
+    /// [`get`]: #method.get
     ///
     /// # Examples
     ///
@@ -413,7 +418,12 @@ impl<T> [T] {
     }
 
     /// Returns a mutable reference to an element or subslice, without doing
-    /// bounds checking. So use it very carefully!
+    /// bounds checking.
+    ///
+    /// This is generally not recommended, use with caution! For a safe
+    /// alternative see [`get_mut`].
+    ///
+    /// [`get_mut`]: #method.get_mut
     ///
     /// # Examples
     ///
diff --git a/src/libcollections/str.rs b/src/libcollections/str.rs
index 7e67befb700..eb32f478194 100644
--- a/src/libcollections/str.rs
+++ b/src/libcollections/str.rs
@@ -435,6 +435,12 @@ impl str {
     /// Creates a string slice from another string slice, bypassing safety
     /// checks.
     ///
+    /// This is generally not recommended, use with caution! For a safe
+    /// alternative see [`str`] and [`Index`].
+    ///
+    /// [`str`]: primitive.str.html
+    /// [`Index`]: ops/trait.Index.html
+    ///
     /// This new slice goes from `begin` to `end`, including `begin` but
     /// excluding `end`.
     ///
@@ -477,6 +483,11 @@ impl str {
 
     /// Creates a string slice from another string slice, bypassing safety
     /// checks.
+    /// This is generally not recommended, use with caution! For a safe
+    /// alternative see [`str`] and [`IndexMut`].
+    ///
+    /// [`str`]: primitive.str.html
+    /// [`IndexMut`]: ops/trait.IndexMut.html
     ///
     /// This new slice goes from `begin` to `end`, including `begin` but
     /// excluding `end`.
@@ -1018,7 +1029,7 @@ impl str {
     ///
     /// ```
     /// let x = "(///)".to_string();
-    /// let d: Vec<_> = x.split('/').collect();;
+    /// let d: Vec<_> = x.split('/').collect();
     ///
     /// assert_eq!(d, &["(", "", "", ")"]);
     /// ```
diff --git a/src/libcore/iter/mod.rs b/src/libcore/iter/mod.rs
index 424c24814ac..5eefa59e7ea 100644
--- a/src/libcore/iter/mod.rs
+++ b/src/libcore/iter/mod.rs
@@ -309,7 +309,7 @@ pub use self::iterator::Iterator;
 
 #[unstable(feature = "step_trait",
            reason = "likely to be replaced by finer-grained traits",
-           issue = "27741")]
+           issue = "42168")]
 pub use self::range::Step;
 #[unstable(feature = "step_by", reason = "recent addition",
            issue = "27741")]
diff --git a/src/libcore/iter/range.rs b/src/libcore/iter/range.rs
index 02d38ccea44..e02823fd812 100644
--- a/src/libcore/iter/range.rs
+++ b/src/libcore/iter/range.rs
@@ -20,7 +20,7 @@ use super::{FusedIterator, TrustedLen};
 /// two `Step` objects.
 #[unstable(feature = "step_trait",
            reason = "likely to be replaced by finer-grained traits",
-           issue = "27741")]
+           issue = "42168")]
 pub trait Step: PartialOrd + Sized {
     /// Steps `self` if possible.
     fn step(&self, by: &Self) -> Option<Self>;
@@ -55,7 +55,7 @@ macro_rules! step_impl_unsigned {
     ($($t:ty)*) => ($(
         #[unstable(feature = "step_trait",
                    reason = "likely to be replaced by finer-grained traits",
-                   issue = "27741")]
+                   issue = "42168")]
         impl Step for $t {
             #[inline]
             fn step(&self, by: &$t) -> Option<$t> {
@@ -115,7 +115,7 @@ macro_rules! step_impl_signed {
     ($($t:ty)*) => ($(
         #[unstable(feature = "step_trait",
                    reason = "likely to be replaced by finer-grained traits",
-                   issue = "27741")]
+                   issue = "42168")]
         impl Step for $t {
             #[inline]
             fn step(&self, by: &$t) -> Option<$t> {
@@ -187,7 +187,7 @@ macro_rules! step_impl_no_between {
     ($($t:ty)*) => ($(
         #[unstable(feature = "step_trait",
                    reason = "likely to be replaced by finer-grained traits",
-                   issue = "27741")]
+                   issue = "42168")]
         impl Step for $t {
             #[inline]
             fn step(&self, by: &$t) -> Option<$t> {
diff --git a/src/librustc_llvm/Cargo.lock b/src/librustc_llvm/Cargo.lock
deleted file mode 100644
index 17678ef2bbd..00000000000
--- a/src/librustc_llvm/Cargo.lock
+++ /dev/null
@@ -1,22 +0,0 @@
-[root]
-name = "rustc_llvm"
-version = "0.0.0"
-dependencies = [
- "build_helper 0.1.0",
- "gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc_bitflags 0.0.0",
-]
-
-[[package]]
-name = "build_helper"
-version = "0.1.0"
-
-[[package]]
-name = "gcc"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "rustc_bitflags"
-version = "0.0.0"
-
diff --git a/src/librustc_passes/consts.rs b/src/librustc_passes/consts.rs
index 25845c5768e..698850f0e9e 100644
--- a/src/librustc_passes/consts.rs
+++ b/src/librustc_passes/consts.rs
@@ -141,7 +141,7 @@ impl<'a, 'tcx> Visitor<'tcx> for CheckCrateVisitor<'a, 'tcx> {
         let outer_penv = self.tcx.infer_ctxt(body_id, Reveal::UserFacing).enter(|infcx| {
             let param_env = infcx.param_env.clone();
             let outer_penv = mem::replace(&mut self.param_env, param_env);
-            let region_maps = &self.tcx.region_maps(item_def_id);;
+            let region_maps = &self.tcx.region_maps(item_def_id);
             euv::ExprUseVisitor::new(self, region_maps, &infcx).consume_body(body);
             outer_penv
         });
diff --git a/src/librustc_trans/mir/block.rs b/src/librustc_trans/mir/block.rs
index d94d7f4430b..a3fa1279ffb 100644
--- a/src/librustc_trans/mir/block.rs
+++ b/src/librustc_trans/mir/block.rs
@@ -901,7 +901,7 @@ impl<'a, 'tcx> MirContext<'a, 'tcx> {
         let llty = type_of::type_of(bcx.ccx, val.ty);
         let cast_ptr = bcx.pointercast(dst.llval, llty.ptr_to());
         let in_type = val.ty;
-        let out_type = dst.ty.to_ty(bcx.tcx());;
+        let out_type = dst.ty.to_ty(bcx.tcx());
         let llalign = cmp::min(bcx.ccx.align_of(in_type), bcx.ccx.align_of(out_type));
         self.store_operand(bcx, cast_ptr, Some(llalign), val);
     }
diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs
index d1ff3ed4f49..0c9d74df248 100644
--- a/src/librustc_typeck/astconv.rs
+++ b/src/librustc_typeck/astconv.rs
@@ -963,7 +963,7 @@ impl<'o, 'gcx: 'tcx, 'tcx> AstConv<'gcx, 'tcx>+'o {
     pub fn prohibit_projection(&self, span: Span) {
         let mut err = struct_span_err!(self.tcx().sess, span, E0229,
                                        "associated type bindings are not allowed here");
-        err.span_label(span, "associate type not allowed here").emit();
+        err.span_label(span, "associated type not allowed here").emit();
     }
 
     // Check a type Path and convert it to a Ty.
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs
index 528d903b8b0..69843199348 100644
--- a/src/libstd/fs.rs
+++ b/src/libstd/fs.rs
@@ -1545,7 +1545,7 @@ pub fn create_dir<P: AsRef<Path>>(path: P) -> io::Result<()> {
 /// determined to not exist) are outlined by `fs::create_dir`.
 ///
 /// Notable exception is made for situations where any of the directories
-/// specified in the `path` could not be created as it was created concurrently.
+/// specified in the `path` could not be created as it was being created concurrently.
 /// Such cases are considered success. In other words: calling `create_dir_all`
 /// concurrently from multiple threads or processes is guaranteed to not fail
 /// due to race itself.
diff --git a/src/test/compile-fail/E0229.rs b/src/test/compile-fail/E0229.rs
index 6ff0baeeb4d..d15f9937f13 100644
--- a/src/test/compile-fail/E0229.rs
+++ b/src/test/compile-fail/E0229.rs
@@ -22,7 +22,7 @@ impl Foo for isize {
 
 fn baz<I>(x: &<I as Foo<A=Bar>>::A) {}
 //~^ ERROR associated type bindings are not allowed here [E0229]
-//~| NOTE associate type not allowed here
+//~| NOTE associated type not allowed here
 
 fn main() {
 }
diff --git a/src/test/compile-fail/issue-23543.rs b/src/test/compile-fail/issue-23543.rs
index f1c559b6b88..e1acc8eb475 100644
--- a/src/test/compile-fail/issue-23543.rs
+++ b/src/test/compile-fail/issue-23543.rs
@@ -16,7 +16,7 @@ pub trait D {
     fn f<T>(self)
         where T<Bogus = Foo>: A;
         //~^ ERROR associated type bindings are not allowed here [E0229]
-        //~| NOTE associate type not allowed here
+        //~| NOTE associated type not allowed here
 }
 
 fn main() {}
diff --git a/src/test/compile-fail/issue-23544.rs b/src/test/compile-fail/issue-23544.rs
index 3959c22d1d4..3cd6f9ebc71 100644
--- a/src/test/compile-fail/issue-23544.rs
+++ b/src/test/compile-fail/issue-23544.rs
@@ -14,7 +14,7 @@ pub trait D {
     fn f<T>(self)
         where T<Bogus = Self::AlsoBogus>: A;
         //~^ ERROR associated type bindings are not allowed here [E0229]
-        //~| NOTE associate type not allowed here
+        //~| NOTE associated type not allowed here
 }
 
 fn main() {}
diff --git a/src/test/compile-fail/issue-36379.rs b/src/test/compile-fail/issue-36379.rs
new file mode 100644
index 00000000000..2f513b034c3
--- /dev/null
+++ b/src/test/compile-fail/issue-36379.rs
@@ -0,0 +1,16 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(conservative_impl_trait, rustc_attrs)]
+
+fn _test() -> impl Default { }
+
+#[rustc_error]
+fn main() { } //~ ERROR compilation successful
diff --git a/src/test/compile-fail/issue-37550.rs b/src/test/compile-fail/issue-37550.rs
new file mode 100644
index 00000000000..e1f7f64e01a
--- /dev/null
+++ b/src/test/compile-fail/issue-37550.rs
@@ -0,0 +1,18 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(const_fn)]
+
+const fn x() {
+    let t = true; //~ ERROR blocks in constant functions are limited to items and tail expressions
+    let x = || t; //~ ERROR blocks in constant functions are limited to items and tail expressions
+}
+
+fn main() {}
diff --git a/src/test/compile-fail/issue-37665.rs b/src/test/compile-fail/issue-37665.rs
new file mode 100644
index 00000000000..f86f570d25d
--- /dev/null
+++ b/src/test/compile-fail/issue-37665.rs
@@ -0,0 +1,20 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// compile-flags: -Z unstable-options --unpretty=mir
+
+use std::path::MAIN_SEPARATOR;
+
+fn main() {
+    let mut foo : String = "hello".to_string();
+    foo.push(MAIN_SEPARATOR);
+    println!("{}", foo);
+    let x: () = 0; //~ ERROR: mismatched types
+}
diff --git a/src/test/compile-fail/issue-38160.rs b/src/test/compile-fail/issue-38160.rs
new file mode 100644
index 00000000000..311d0ceb4d3
--- /dev/null
+++ b/src/test/compile-fail/issue-38160.rs
@@ -0,0 +1,31 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(associated_consts, rustc_attrs)]
+#![allow(warnings)]
+
+trait MyTrait {
+    const MY_CONST: &'static str;
+}
+
+macro_rules! my_macro {
+    () => {
+        struct MyStruct;
+
+        impl MyTrait for MyStruct {
+            const MY_CONST: &'static str = stringify!(abc);
+        }
+    }
+}
+
+my_macro!();
+
+#[rustc_error]
+fn main() {} //~ ERROR compilation successful
diff --git a/src/test/compile-fail/issue-38954.rs b/src/test/compile-fail/issue-38954.rs
new file mode 100644
index 00000000000..65b17a3db0b
--- /dev/null
+++ b/src/test/compile-fail/issue-38954.rs
@@ -0,0 +1,16 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(rustc_attrs)]
+
+fn _test(ref _p: str) {}
+
+#[rustc_error]
+fn main() { } //~ ERROR compilation successful
diff --git a/src/test/compile-fail/issue-39362.rs b/src/test/compile-fail/issue-39362.rs
new file mode 100644
index 00000000000..9d8abbfc65d
--- /dev/null
+++ b/src/test/compile-fail/issue-39362.rs
@@ -0,0 +1,28 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+enum Foo {
+    Bar { bar: Bar, id: usize }
+}
+
+enum Bar {
+    A, B, C, D, E, F
+}
+
+fn test(f: Foo) {
+    match f {
+        //~^ ERROR non-exhaustive patterns
+        //~| patterns
+        Foo::Bar { bar: Bar::A, .. } => (),
+        Foo::Bar { bar: Bar::B, .. } => (),
+    }
+}
+
+fn main() {}
diff --git a/src/test/run-pass/issue-16671.rs b/src/test/run-pass/issue-16671.rs
index 71a19d98190..49dc970ba3f 100644
--- a/src/test/run-pass/issue-16671.rs
+++ b/src/test/run-pass/issue-16671.rs
@@ -13,7 +13,7 @@
 fn foo<F: FnOnce()>(_f: F) { }
 
 fn main() {
-    let mut var = Vec::new();;
+    let mut var = Vec::new();
     foo(move|| {
         var.push(1);
     });