about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-03-10 05:01:03 -0800
committerbors <bors@rust-lang.org>2016-03-10 05:01:03 -0800
commit6d6ae1ffe665610ae235dd95e849248a6741ff0f (patch)
treec68821847bb7619762f997c075d499966ba1370c
parent25a23271f424107965c0a44db2993c263b79b9fa (diff)
parent4f8d0291f3377a9e0c99300ecbef2962117b6cd6 (diff)
downloadrust-6d6ae1ffe665610ae235dd95e849248a6741ff0f.tar.gz
rust-6d6ae1ffe665610ae235dd95e849248a6741ff0f.zip
Auto merge of #32173 - steveklabnik:rollup, r=steveklabnik
Rollup of 8 pull requests

- Successful merges: #31830, #32091, #32125, #32136, #32147, #32148, #32149, #32150
- Failed merges:
-rw-r--r--src/doc/book/guessing-game.md2
-rw-r--r--src/doc/book/inline-assembly.md3
-rw-r--r--src/doc/book/testing.md4
-rw-r--r--src/doc/reference.md4
-rw-r--r--src/liballoc/arc.rs5
-rw-r--r--src/liballoc/rc.rs5
-rw-r--r--src/libcollections/btree/set.rs30
-rw-r--r--src/libcore/hash/sip.rs18
-rw-r--r--src/librustc_typeck/check/method/suggest.rs3
-rw-r--r--src/test/compile-fail/issue-7575.rs7
10 files changed, 58 insertions, 23 deletions
diff --git a/src/doc/book/guessing-game.md b/src/doc/book/guessing-game.md
index b9b6e9a4c95..e071bfdf8bc 100644
--- a/src/doc/book/guessing-game.md
+++ b/src/doc/book/guessing-game.md
@@ -295,7 +295,7 @@ Rust warns us that we haven’t used the `Result` value. This warning comes from
 a special annotation that `io::Result` has. Rust is trying to tell you that
 you haven’t handled a possible error. The right way to suppress the error is
 to actually write error handling. Luckily, if we want to crash if there’s
-a problem, we can use these two little methods. If we can recover from the
+a problem, we can use `expect()`. If we can recover from the
 error somehow, we’d do something else, but we’ll save that for a future
 project.
 
diff --git a/src/doc/book/inline-assembly.md b/src/doc/book/inline-assembly.md
index 7659c4ff88d..a5a2d7ce74e 100644
--- a/src/doc/book/inline-assembly.md
+++ b/src/doc/book/inline-assembly.md
@@ -2,8 +2,7 @@
 
 For extremely low-level manipulations and performance reasons, one
 might wish to control the CPU directly. Rust supports using inline
-assembly to do this via the `asm!` macro. The syntax roughly matches
-that of GCC & Clang:
+assembly to do this via the `asm!` macro.
 
 ```ignore
 asm!(assembly template
diff --git a/src/doc/book/testing.md b/src/doc/book/testing.md
index d57664bf07e..59d07e4f81c 100644
--- a/src/doc/book/testing.md
+++ b/src/doc/book/testing.md
@@ -515,7 +515,3 @@ you add more examples.
 
 We haven’t covered all of the details with writing documentation tests. For more,
 please see the [Documentation chapter](documentation.html).
-
-One final note: documentation tests *cannot* be run on binary crates.
-To see more on file arrangement see the [Crates and
-Modules](crates-and-modules.html) section.
diff --git a/src/doc/reference.md b/src/doc/reference.md
index 8e655ee22e3..4c5fd31b96e 100644
--- a/src/doc/reference.md
+++ b/src/doc/reference.md
@@ -3328,6 +3328,10 @@ The primitive types are the following:
 * The boolean type `bool` with values `true` and `false`.
 * The machine types (integer and floating-point).
 * The machine-dependent integer types.
+* Arrays
+* Tuples
+* Slices
+* Function pointers
 
 #### Machine types
 
diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs
index 74325afaebd..b5d7279edb0 100644
--- a/src/liballoc/arc.rs
+++ b/src/liballoc/arc.rs
@@ -201,11 +201,12 @@ impl<T> Arc<T> {
         Arc { _ptr: unsafe { Shared::new(Box::into_raw(x)) } }
     }
 
-    /// Unwraps the contained value if the `Arc<T>` has only one strong reference.
-    /// This will succeed even if there are outstanding weak references.
+    /// Unwraps the contained value if the `Arc<T>` has exactly one strong reference.
     ///
     /// Otherwise, an `Err` is returned with the same `Arc<T>`.
     ///
+    /// This will succeed even if there are outstanding weak references.
+    ///
     /// # Examples
     ///
     /// ```
diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs
index 162312e2457..dc283f5acdf 100644
--- a/src/liballoc/rc.rs
+++ b/src/liballoc/rc.rs
@@ -224,11 +224,12 @@ impl<T> Rc<T> {
         }
     }
 
-    /// Unwraps the contained value if the `Rc<T>` has only one strong reference.
-    /// This will succeed even if there are outstanding weak references.
+    /// Unwraps the contained value if the `Rc<T>` has exactly one strong reference.
     ///
     /// Otherwise, an `Err` is returned with the same `Rc<T>`.
     ///
+    /// This will succeed even if there are outstanding weak references.
+    ///
     /// # Examples
     ///
     /// ```
diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs
index 1cd50c2dcbe..dc653b446da 100644
--- a/src/libcollections/btree/set.rs
+++ b/src/libcollections/btree/set.rs
@@ -38,6 +38,36 @@ use Bound;
 /// [`Ord`]: ../../core/cmp/trait.Ord.html
 /// [`Cell`]: ../../std/cell/struct.Cell.html
 /// [`RefCell`]: ../../std/cell/struct.RefCell.html
+///
+/// # Examples
+///
+/// ```
+/// use std::collections::BTreeSet;
+///
+/// // Type inference lets us omit an explicit type signature (which
+/// // would be `BTreeSet<&str>` in this example).
+/// let mut books = BTreeSet::new();
+///
+/// // Add some books.
+/// books.insert("A Dance With Dragons");
+/// books.insert("To Kill a Mockingbird");
+/// books.insert("The Odyssey");
+/// books.insert("The Great Gatsby");
+///
+/// // Check for a specific one.
+/// if !books.contains("The Winds of Winter") {
+///     println!("We have {} books, but The Winds of Winter ain't one.",
+///              books.len());
+/// }
+///
+/// // Remove a book.
+/// books.remove("The Odyssey");
+///
+/// // Iterate over everything.
+/// for book in &books {
+///     println!("{}", book);
+/// }
+/// ```
 #[derive(Clone, Hash, PartialEq, Eq, Ord, PartialOrd)]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct BTreeSet<T> {
diff --git a/src/libcore/hash/sip.rs b/src/libcore/hash/sip.rs
index 722d77a8a11..342071f1b51 100644
--- a/src/libcore/hash/sip.rs
+++ b/src/libcore/hash/sip.rs
@@ -19,15 +19,17 @@ use super::Hasher;
 ///
 /// See: http://131002.net/siphash/
 ///
-/// Consider this as a main "general-purpose" hash for all hashtables: it
-/// runs at good speed (competitive with spooky and city) and permits
-/// strong _keyed_ hashing. Key your hashtables from a strong RNG,
-/// such as `rand::Rng`.
+/// This is currently the default hashing function used by standard library
+/// (eg. `collections::HashMap` uses it by default).
 ///
-/// Although the SipHash algorithm is considered to be cryptographically
-/// strong, this implementation has not been reviewed for such purposes.
-/// As such, all cryptographic uses of this implementation are strongly
-/// discouraged.
+/// SipHash is a general-purpose hashing function: it runs at a good
+/// speed (competitive with Spooky and City) and permits strong _keyed_
+/// hashing. This lets you key your hashtables from a strong RNG, such as
+/// [`rand::os::OsRng`](https://doc.rust-lang.org/rand/rand/os/struct.OsRng.html).
+///
+/// Although the SipHash algorithm is considered to be generally strong,
+/// it is not intended for cryptographic purposes. As such, all
+/// cryptographic uses of this implementation are _strongly discouraged_.
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct SipHasher {
     k0: u64,
diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs
index 7dc9d46c303..cdf7e1bd33a 100644
--- a/src/librustc_typeck/check/method/suggest.rs
+++ b/src/librustc_typeck/check/method/suggest.rs
@@ -141,7 +141,8 @@ pub fn report_error<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
             if !static_sources.is_empty() {
                 err.fileline_note(
                     span,
-                    "found defined static methods, maybe a `self` is missing?");
+                    "found the following associated functions; to be used as \
+                     methods, functions must have a `self` parameter");
 
                 report_candidates(fcx, &mut err, span, item_name, static_sources);
             }
diff --git a/src/test/compile-fail/issue-7575.rs b/src/test/compile-fail/issue-7575.rs
index 6c7196527ef..3cb30981b67 100644
--- a/src/test/compile-fail/issue-7575.rs
+++ b/src/test/compile-fail/issue-7575.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 // Test the mechanism for warning about possible missing `self` declarations.
+// ignore-tidy-linelength
 
 trait CtxtFn {
     fn f8(self, usize) -> usize;
@@ -72,15 +73,15 @@ impl ManyImplTrait for Myisize {}
 fn no_param_bound(u: usize, m: Myisize) -> usize {
     u.f8(42) + u.f9(342) + m.fff(42)
             //~^ ERROR no method named `f9` found for type `usize` in the current scope
-            //~^^ NOTE found defined static methods, maybe a `self` is missing?
+            //~^^ NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
             //~^^^ ERROR no method named `fff` found for type `Myisize` in the current scope
-            //~^^^^ NOTE found defined static methods, maybe a `self` is missing?
+            //~^^^^ NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
 }
 
 fn param_bound<T: ManyImplTrait>(t: T) -> bool {
     t.is_str()
     //~^ ERROR no method named `is_str` found for type `T` in the current scope
-    //~^^ NOTE found defined static methods, maybe a `self` is missing?
+    //~^^ NOTE found the following associated functions; to be used as methods, functions must have a `self` parameter
 }
 
 fn main() {