about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-02-20 04:48:34 +0000
committerbors <bors@rust-lang.org>2016-02-20 04:48:34 +0000
commitd3ffad7a38d4a203b5c1f97db52ff45849a66b32 (patch)
tree1b45113d2b25640d9d76077aa917acb9d5e3fff5
parenta212264011289885bdb8b2306a8fdd50e1f83c99 (diff)
parent78f6431002b81dc7ef3001965192e6fbfff34d7a (diff)
downloadrust-d3ffad7a38d4a203b5c1f97db52ff45849a66b32.tar.gz
rust-d3ffad7a38d4a203b5c1f97db52ff45849a66b32.zip
Auto merge of #31777 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #31721, #31737, #31741, #31750, #31763, #31764, #31765, #31775
- Failed merges:
-rw-r--r--.mailmap2
-rw-r--r--src/liballoc_jemalloc/lib.rs10
-rw-r--r--src/librustc/front/check_attr.rs1
-rw-r--r--src/librustc_privacy/diagnostics.rs4
-rw-r--r--src/librustc_privacy/lib.rs2
-rw-r--r--src/libstd/env.rs6
-rw-r--r--src/libstd/os/netbsd/raw.rs4
-rw-r--r--src/test/compile-fail/issue-31769.rs14
-rw-r--r--src/test/compile-fail/privacy5.rs36
9 files changed, 47 insertions, 32 deletions
diff --git a/.mailmap b/.mailmap
index 317a92b8f43..e0759cb8563 100644
--- a/.mailmap
+++ b/.mailmap
@@ -82,7 +82,7 @@ Gareth Daniel Smith <garethdanielsmith@gmail.com> Gareth Smith <garethdanielsmit
 Georges Dubus <georges.dubus@gmail.com> <georges.dubus@compiletoi.net>
 Graham Fawcett <graham.fawcett@gmail.com> Graham Fawcett <fawcett@uwindsor.ca>
 Graydon Hoare <graydon@pobox.com> Graydon Hoare <graydon@mozilla.com>
-Guillaume Gomez <guillaume1.gomez@gmail.com>
+Guillaume Gomez <guillaume1.gomez@gmail.com> Guillaume Gomez <ggomez@ggo.ifr.lan>
 Heather <heather@cynede.net> <Cynede@Gentoo.org>
 Heather <heather@cynede.net> <Heather@cynede.net>
 Herman J. Radtke III <herman@hermanradtke.com> Herman J. Radtke III <hermanradtke@gmail.com>
diff --git a/src/liballoc_jemalloc/lib.rs b/src/liballoc_jemalloc/lib.rs
index bda001eb4f4..c96d303e6bb 100644
--- a/src/liballoc_jemalloc/lib.rs
+++ b/src/liballoc_jemalloc/lib.rs
@@ -45,19 +45,19 @@ extern {}
 // explicitly request it), and on Android we explicitly request it as
 // unprefixing cause segfaults (mismatches in allocators).
 extern {
-    #[cfg_attr(any(target_os = "macos", target_os = "android"),
+    #[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios"),
                link_name = "je_mallocx")]
     fn mallocx(size: size_t, flags: c_int) -> *mut c_void;
-    #[cfg_attr(any(target_os = "macos", target_os = "android"),
+    #[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios"),
                link_name = "je_rallocx")]
     fn rallocx(ptr: *mut c_void, size: size_t, flags: c_int) -> *mut c_void;
-    #[cfg_attr(any(target_os = "macos", target_os = "android"),
+    #[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios"),
                link_name = "je_xallocx")]
     fn xallocx(ptr: *mut c_void, size: size_t, extra: size_t, flags: c_int) -> size_t;
-    #[cfg_attr(any(target_os = "macos", target_os = "android"),
+    #[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios"),
                link_name = "je_sdallocx")]
     fn sdallocx(ptr: *mut c_void, size: size_t, flags: c_int);
-    #[cfg_attr(any(target_os = "macos", target_os = "android"),
+    #[cfg_attr(any(target_os = "macos", target_os = "android", target_os = "ios"),
                link_name = "je_nallocx")]
     fn nallocx(size: size_t, flags: c_int) -> size_t;
 }
diff --git a/src/librustc/front/check_attr.rs b/src/librustc/front/check_attr.rs
index cfd9d5bdaa7..085acc198d1 100644
--- a/src/librustc/front/check_attr.rs
+++ b/src/librustc/front/check_attr.rs
@@ -101,6 +101,7 @@ impl<'a, 'v> Visitor<'v> for CheckAttrVisitor<'a> {
         for attr in &item.attrs {
             self.check_attribute(attr, target);
         }
+        visit::walk_item(self, item);
     }
 }
 
diff --git a/src/librustc_privacy/diagnostics.rs b/src/librustc_privacy/diagnostics.rs
index 36ba3d0ca73..1b49409970d 100644
--- a/src/librustc_privacy/diagnostics.rs
+++ b/src/librustc_privacy/diagnostics.rs
@@ -205,8 +205,8 @@ let f = Bar::Foo{ a: 0, b: 0 }; // error: field `b` of struct `Bar::Foo`
                                 //        is private
 ```
 
-To fix this error, please ensure that all the fields of the struct, or
-implement a function for easy instantiation. Examples:
+To fix this error, please ensure that all the fields of the struct are public,
+or implement a function for easy instantiation. Examples:
 
 ```
 mod Bar {
diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs
index 366089645bf..f0786b9b1fa 100644
--- a/src/librustc_privacy/lib.rs
+++ b/src/librustc_privacy/lib.rs
@@ -833,7 +833,7 @@ impl<'a, 'tcx> PrivacyVisitor<'a, 'tcx> {
             NamedField(name) => format!("field `{}` of {} is private",
                                         name, struct_desc),
             UnnamedField(idx) => format!("field #{} of {} is private",
-                                         idx + 1, struct_desc),
+                                         idx, struct_desc),
         };
         span_err!(self.tcx.sess, span, E0451,
                   "{}", &msg[..]);
diff --git a/src/libstd/env.rs b/src/libstd/env.rs
index fa48efb2788..f7e13a35e9e 100644
--- a/src/libstd/env.rs
+++ b/src/libstd/env.rs
@@ -528,13 +528,13 @@ pub struct ArgsOs { inner: os_imp::Args }
 /// via the command line).
 ///
 /// The first element is traditionally the path to the executable, but it can be
-/// set to arbitrary text, and it may not even exist, so this property should
+/// set to arbitrary text, and may not even exist. This means this property should
 /// not be relied upon for security purposes.
 ///
 /// # Panics
 ///
 /// The returned iterator will panic during iteration if any argument to the
-/// process is not valid unicode. If this is not desired it is recommended to
+/// process is not valid unicode. If this is not desired,
 /// use the `args_os` function instead.
 ///
 /// # Examples
@@ -603,7 +603,7 @@ impl ExactSizeIterator for ArgsOs {
 /// Constants associated with the current target
 #[stable(feature = "env", since = "1.0.0")]
 pub mod consts {
-    /// A string describing the architecture of the CPU that this is currently
+    /// A string describing the architecture of the CPU that is currently
     /// in use.
     ///
     /// Some possible values:
diff --git a/src/libstd/os/netbsd/raw.rs b/src/libstd/os/netbsd/raw.rs
index 7eb3f6d47d1..bc30c1a7f48 100644
--- a/src/libstd/os/netbsd/raw.rs
+++ b/src/libstd/os/netbsd/raw.rs
@@ -46,9 +46,9 @@ pub struct stat {
     #[stable(feature = "raw_ext", since = "1.1.0")]
     pub st_nlink: u32,
     #[stable(feature = "raw_ext", since = "1.1.0")]
-    pub st_uid: u32,
+    pub st_uid: uid_t,
     #[stable(feature = "raw_ext", since = "1.1.0")]
-    pub st_gid: u32,
+    pub st_gid: gid_t,
     #[stable(feature = "raw_ext", since = "1.1.0")]
     pub st_rdev: u64,
     #[stable(feature = "raw_ext", since = "1.1.0")]
diff --git a/src/test/compile-fail/issue-31769.rs b/src/test/compile-fail/issue-31769.rs
new file mode 100644
index 00000000000..4b5df7ea53c
--- /dev/null
+++ b/src/test/compile-fail/issue-31769.rs
@@ -0,0 +1,14 @@
+// Copyright 2012-2016 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.
+
+fn main() {
+    #[inline] struct Foo;  //~ ERROR attribute should be applied to function
+    #[repr(C)] fn foo() {} //~ ERROR attribute should be applied to struct or enum
+}
diff --git a/src/test/compile-fail/privacy5.rs b/src/test/compile-fail/privacy5.rs
index 83e13ff52f6..588c9be3065 100644
--- a/src/test/compile-fail/privacy5.rs
+++ b/src/test/compile-fail/privacy5.rs
@@ -63,25 +63,25 @@ fn this_crate() {
     let c = a::C(2, 3); //~ ERROR: cannot invoke tuple struct constructor
     let d = a::D(4);
 
-    let a::A(()) = a; //~ ERROR: field #1 of struct `a::A` is private
+    let a::A(()) = a; //~ ERROR: field #0 of struct `a::A` is private
     let a::A(_) = a;
-    match a { a::A(()) => {} } //~ ERROR: field #1 of struct `a::A` is private
+    match a { a::A(()) => {} } //~ ERROR: field #0 of struct `a::A` is private
     match a { a::A(_) => {} }
 
     let a::B(_) = b;
-    let a::B(_b) = b; //~ ERROR: field #1 of struct `a::B` is private
+    let a::B(_b) = b; //~ ERROR: field #0 of struct `a::B` is private
     match b { a::B(_) => {} }
-    match b { a::B(_b) => {} } //~ ERROR: field #1 of struct `a::B` is private
-    match b { a::B(1) => {} a::B(_) => {} } //~ ERROR: field #1 of struct `a::B` is private
+    match b { a::B(_b) => {} } //~ ERROR: field #0 of struct `a::B` is private
+    match b { a::B(1) => {} a::B(_) => {} } //~ ERROR: field #0 of struct `a::B` is private
 
     let a::C(_, _) = c;
     let a::C(_a, _) = c;
-    let a::C(_, _b) = c; //~ ERROR: field #2 of struct `a::C` is private
-    let a::C(_a, _b) = c; //~ ERROR: field #2 of struct `a::C` is private
+    let a::C(_, _b) = c; //~ ERROR: field #1 of struct `a::C` is private
+    let a::C(_a, _b) = c; //~ ERROR: field #1 of struct `a::C` is private
     match c { a::C(_, _) => {} }
     match c { a::C(_a, _) => {} }
-    match c { a::C(_, _b) => {} } //~ ERROR: field #2 of struct `a::C` is private
-    match c { a::C(_a, _b) => {} } //~ ERROR: field #2 of struct `a::C` is private
+    match c { a::C(_, _b) => {} } //~ ERROR: field #1 of struct `a::C` is private
+    match c { a::C(_a, _b) => {} } //~ ERROR: field #1 of struct `a::C` is private
 
     let a::D(_) = d;
     let a::D(_d) = d;
@@ -101,30 +101,30 @@ fn xcrate() {
     let c = other::C(2, 3); //~ ERROR: cannot invoke tuple struct constructor
     let d = other::D(4);
 
-    let other::A(()) = a; //~ ERROR: field #1 of struct `other::A` is private
+    let other::A(()) = a; //~ ERROR: field #0 of struct `other::A` is private
     let other::A(_) = a;
     match a { other::A(()) => {} }
-    //~^ ERROR: field #1 of struct `other::A` is private
+    //~^ ERROR: field #0 of struct `other::A` is private
     match a { other::A(_) => {} }
 
     let other::B(_) = b;
-    let other::B(_b) = b; //~ ERROR: field #1 of struct `other::B` is private
+    let other::B(_b) = b; //~ ERROR: field #0 of struct `other::B` is private
     match b { other::B(_) => {} }
     match b { other::B(_b) => {} }
-    //~^ ERROR: field #1 of struct `other::B` is private
+    //~^ ERROR: field #0 of struct `other::B` is private
     match b { other::B(1) => {} other::B(_) => {} }
-    //~^ ERROR: field #1 of struct `other::B` is private
+    //~^ ERROR: field #0 of struct `other::B` is private
 
     let other::C(_, _) = c;
     let other::C(_a, _) = c;
-    let other::C(_, _b) = c; //~ ERROR: field #2 of struct `other::C` is private
-    let other::C(_a, _b) = c; //~ ERROR: field #2 of struct `other::C` is private
+    let other::C(_, _b) = c; //~ ERROR: field #1 of struct `other::C` is private
+    let other::C(_a, _b) = c; //~ ERROR: field #1 of struct `other::C` is private
     match c { other::C(_, _) => {} }
     match c { other::C(_a, _) => {} }
     match c { other::C(_, _b) => {} }
-    //~^ ERROR: field #2 of struct `other::C` is private
+    //~^ ERROR: field #1 of struct `other::C` is private
     match c { other::C(_a, _b) => {} }
-    //~^ ERROR: field #2 of struct `other::C` is private
+    //~^ ERROR: field #1 of struct `other::C` is private
 
     let other::D(_) = d;
     let other::D(_d) = d;