diff options
| author | bors <bors@rust-lang.org> | 2015-10-25 18:34:29 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-10-25 18:34:29 +0000 |
| commit | 2a418216feeb83fd3f68c725c0e5577beacff59b (patch) | |
| tree | 01c02fbec3a30e4561595e9fa740d5632237cf38 | |
| parent | e02ada6d383459f372ab6f277f25e5e986a60ed8 (diff) | |
| parent | 863bb1f5150419dc16ed9c511a7e790f0b8ba79c (diff) | |
| download | rust-2a418216feeb83fd3f68c725c0e5577beacff59b.tar.gz rust-2a418216feeb83fd3f68c725c0e5577beacff59b.zip | |
Auto merge of #29266 - apasel422:wf, r=alexcrichton
Using these traits in an object context previously resulted in an RFC 1214 warning.
| -rw-r--r-- | src/libcore/convert.rs | 2 | ||||
| -rw-r--r-- | src/libcore/default.rs | 4 | ||||
| -rw-r--r-- | src/libcore/iter.rs | 2 | ||||
| -rw-r--r-- | src/libcore/num/mod.rs | 4 |
4 files changed, 7 insertions, 5 deletions
diff --git a/src/libcore/convert.rs b/src/libcore/convert.rs index 70868805299..b02b2a06b75 100644 --- a/src/libcore/convert.rs +++ b/src/libcore/convert.rs @@ -95,7 +95,7 @@ pub trait Into<T>: Sized { /// assert_eq!(string, other_string); /// ``` #[stable(feature = "rust1", since = "1.0.0")] -pub trait From<T> { +pub trait From<T>: Sized { /// Performs the conversion. #[stable(feature = "rust1", since = "1.0.0")] fn from(T) -> Self; diff --git a/src/libcore/default.rs b/src/libcore/default.rs index 0e318f204eb..f7fda3d04fd 100644 --- a/src/libcore/default.rs +++ b/src/libcore/default.rs @@ -78,6 +78,8 @@ #![stable(feature = "rust1", since = "1.0.0")] +use marker::Sized; + /// A trait for giving a type a useful default value. /// /// A struct can derive default implementations of `Default` for basic types using @@ -93,7 +95,7 @@ /// } /// ``` #[stable(feature = "rust1", since = "1.0.0")] -pub trait Default { +pub trait Default: Sized { /// Returns the "default value" for a type. /// /// Default values are often some kind of initial value, identity value, or anything else that diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 87509705534..5353fcaa3b4 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -1490,7 +1490,7 @@ impl<'a, I: Iterator + ?Sized> Iterator for &'a mut I { #[stable(feature = "rust1", since = "1.0.0")] #[rustc_on_unimplemented="a collection of type `{Self}` cannot be \ 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. /// /// # Examples diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs index 4b68591aa86..de56cf902a4 100644 --- a/src/libcore/num/mod.rs +++ b/src/libcore/num/mod.rs @@ -58,7 +58,7 @@ pub mod diy_float; #[unstable(feature = "zero_one", reason = "unsure of placement, wants to use associated constants", issue = "27739")] -pub trait Zero { +pub trait Zero: Sized { /// The "zero" (usually, additive identity) for this type. fn zero() -> Self; } @@ -70,7 +70,7 @@ pub trait Zero { #[unstable(feature = "zero_one", reason = "unsure of placement, wants to use associated constants", issue = "27739")] -pub trait One { +pub trait One: Sized { /// The "one" (usually, multiplicative identity) for this type. fn one() -> Self; } |
