Rollup merge of #21445 - P1start:no-implemented, r=nikomatsakis
This commit is contained in:
commit
6a9ee09a99
@ -243,6 +243,8 @@ pub trait Show {
|
||||
/// Format trait for the `:?` format. Useful for debugging, most all types
|
||||
/// should implement this.
|
||||
#[unstable = "I/O and core have yet to be reconciled"]
|
||||
#[rustc_on_unimplemented = "`{Self}` cannot be formatted using `:?`; if it is defined in your \
|
||||
crate, add `#[derive(Debug)]` or manually implement it"]
|
||||
pub trait Debug {
|
||||
/// Formats the value using the given formatter.
|
||||
fn fmt(&self, &mut Formatter) -> Result;
|
||||
@ -266,6 +268,8 @@ pub trait String {
|
||||
/// When a value can be semantically expressed as a String, this trait may be
|
||||
/// used. It corresponds to the default format, `{}`.
|
||||
#[unstable = "I/O and core have yet to be reconciled"]
|
||||
#[rustc_on_unimplemented = "`{Self}` cannot be formatted with the default formatter; try using \
|
||||
`:?` instead if you are using a format string"]
|
||||
pub trait Display {
|
||||
/// Formats the value using the given formatter.
|
||||
fn fmt(&self, &mut Formatter) -> Result;
|
||||
|
@ -82,6 +82,8 @@ use usize;
|
||||
/// else.
|
||||
#[lang="iterator"]
|
||||
#[stable]
|
||||
#[rustc_on_unimplemented = "`{Self}` is not an iterator; maybe try calling `.iter()` or a similar \
|
||||
method"]
|
||||
pub trait Iterator {
|
||||
#[stable]
|
||||
type Item;
|
||||
|
@ -27,9 +27,10 @@
|
||||
|
||||
use clone::Clone;
|
||||
|
||||
/// Types able to be transferred across task boundaries.
|
||||
/// Types able to be transferred across thread boundaries.
|
||||
#[unstable = "will be overhauled with new lifetime rules; see RFC 458"]
|
||||
#[lang="send"]
|
||||
#[rustc_on_unimplemented = "`{Self}` cannot be sent between threads safely"]
|
||||
pub unsafe trait Send: 'static {
|
||||
// empty.
|
||||
}
|
||||
@ -37,6 +38,7 @@ pub unsafe trait Send: 'static {
|
||||
/// Types with a constant size known at compile-time.
|
||||
#[stable]
|
||||
#[lang="sized"]
|
||||
#[rustc_on_unimplemented = "`{Self}` does not have a constant size known at compile-time"]
|
||||
pub trait Sized {
|
||||
// Empty.
|
||||
}
|
||||
@ -146,11 +148,11 @@ pub trait Copy {
|
||||
// Empty.
|
||||
}
|
||||
|
||||
/// Types that can be safely shared between tasks when aliased.
|
||||
/// Types that can be safely shared between threads when aliased.
|
||||
///
|
||||
/// The precise definition is: a type `T` is `Sync` if `&T` is
|
||||
/// thread-safe. In other words, there is no possibility of data races
|
||||
/// when passing `&T` references between tasks.
|
||||
/// when passing `&T` references between threads.
|
||||
///
|
||||
/// As one would expect, primitive types like `u8` and `f64` are all
|
||||
/// `Sync`, and so are simple aggregate types containing them (like
|
||||
@ -193,6 +195,7 @@ pub trait Copy {
|
||||
/// `transmute`-ing from `&T` to `&mut T` is illegal).
|
||||
#[unstable = "will be overhauled with new lifetime rules; see RFC 458"]
|
||||
#[lang="sync"]
|
||||
#[rustc_on_unimplemented = "`{Self}` cannot be shared between threads safely"]
|
||||
pub unsafe trait Sync {
|
||||
// Empty
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user