Make {Default, From, FromIterator, One, Zero}
well-formed
Using these traits in an object context previously resulted in an RFC 1214 warning.
This commit is contained in:
parent
525ab4a413
commit
863bb1f515
4 changed files with 7 additions and 5 deletions
|
@ -95,7 +95,7 @@ pub trait Into<T>: Sized {
|
||||||
/// assert_eq!(string, other_string);
|
/// assert_eq!(string, other_string);
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub trait From<T> {
|
pub trait From<T>: Sized {
|
||||||
/// Performs the conversion.
|
/// Performs the conversion.
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
fn from(T) -> Self;
|
fn from(T) -> Self;
|
||||||
|
|
|
@ -78,6 +78,8 @@
|
||||||
|
|
||||||
#![stable(feature = "rust1", since = "1.0.0")]
|
#![stable(feature = "rust1", since = "1.0.0")]
|
||||||
|
|
||||||
|
use marker::Sized;
|
||||||
|
|
||||||
/// A trait for giving a type a useful default value.
|
/// A trait for giving a type a useful default value.
|
||||||
///
|
///
|
||||||
/// A struct can derive default implementations of `Default` for basic types using
|
/// A struct can derive default implementations of `Default` for basic types using
|
||||||
|
@ -93,7 +95,7 @@
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub trait Default {
|
pub trait Default: Sized {
|
||||||
/// Returns the "default value" for a type.
|
/// Returns the "default value" for a type.
|
||||||
///
|
///
|
||||||
/// Default values are often some kind of initial value, identity value, or anything else that
|
/// Default values are often some kind of initial value, identity value, or anything else that
|
||||||
|
|
|
@ -1490,7 +1490,7 @@ impl<'a, I: Iterator + ?Sized> Iterator for &'a mut I {
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
#[rustc_on_unimplemented="a collection of type `{Self}` cannot be \
|
#[rustc_on_unimplemented="a collection of type `{Self}` cannot be \
|
||||||
built from an iterator over elements of type `{A}`"]
|
built from an iterator over elements of type `{A}`"]
|
||||||
pub trait FromIterator<A> {
|
pub trait FromIterator<A>: Sized {
|
||||||
/// Builds a container with elements from something iterable.
|
/// Builds a container with elements from something iterable.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
|
|
|
@ -58,7 +58,7 @@ pub mod diy_float;
|
||||||
#[unstable(feature = "zero_one",
|
#[unstable(feature = "zero_one",
|
||||||
reason = "unsure of placement, wants to use associated constants",
|
reason = "unsure of placement, wants to use associated constants",
|
||||||
issue = "27739")]
|
issue = "27739")]
|
||||||
pub trait Zero {
|
pub trait Zero: Sized {
|
||||||
/// The "zero" (usually, additive identity) for this type.
|
/// The "zero" (usually, additive identity) for this type.
|
||||||
fn zero() -> Self;
|
fn zero() -> Self;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ pub trait Zero {
|
||||||
#[unstable(feature = "zero_one",
|
#[unstable(feature = "zero_one",
|
||||||
reason = "unsure of placement, wants to use associated constants",
|
reason = "unsure of placement, wants to use associated constants",
|
||||||
issue = "27739")]
|
issue = "27739")]
|
||||||
pub trait One {
|
pub trait One: Sized {
|
||||||
/// The "one" (usually, multiplicative identity) for this type.
|
/// The "one" (usually, multiplicative identity) for this type.
|
||||||
fn one() -> Self;
|
fn one() -> Self;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue