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:
This commit is contained in:
commit
6d6ae1ffe6
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
///
|
||||
/// ```
|
||||
|
|
|
@ -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
|
||||
///
|
||||
/// ```
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue