about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Turon <aturon@mozilla.com>2014-11-05 07:18:32 -0800
committerAaron Turon <aturon@mozilla.com>2014-11-20 00:05:00 -0800
commitc287afb2fa530d22563391737ac1d44faf2f9b2e (patch)
tree3d27cfbe8ff9dfe89d4ebe1827807483d9f2cf4e
parent004db80afe08b28d79741c486ceb8398e6725829 (diff)
downloadrust-c287afb2fa530d22563391737ac1d44faf2f9b2e.tar.gz
rust-c287afb2fa530d22563391737ac1d44faf2f9b2e.zip
libcore: DSTify ops traits, Equiv
This commit relaxes constraints on generics and traits within the
`core::ops` module and for the `Equiv` trait.
-rw-r--r--src/libcore/cmp.rs2
-rw-r--r--src/libcore/ops.rs38
2 files changed, 20 insertions, 20 deletions
diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs
index 59d31a0749f..51122d0a170 100644
--- a/src/libcore/cmp.rs
+++ b/src/libcore/cmp.rs
@@ -241,7 +241,7 @@ pub trait PartialOrd for Sized?: PartialEq {
 /// container types; e.g. it is often desirable to be able to use `&str`
 /// values to look up entries in a container with `String` keys.
 #[experimental = "Better solutions may be discovered."]
-pub trait Equiv<T> for Sized? {
+pub trait Equiv<Sized? T> for Sized? {
     /// Implement this function to decide equivalent values.
     fn equiv(&self, other: &T) -> bool;
 }
diff --git a/src/libcore/ops.rs b/src/libcore/ops.rs
index b4bf5351e59..185c937eb6b 100644
--- a/src/libcore/ops.rs
+++ b/src/libcore/ops.rs
@@ -112,7 +112,7 @@ pub trait Drop {
  * ```
  */
 #[lang="add"]
-pub trait Add<RHS,Result> {
+pub trait Add<Sized? RHS,Result> for Sized? {
     /// The method for the `+` operator
     fn add(&self, rhs: &RHS) -> Result;
 }
@@ -153,7 +153,7 @@ add_impl!(uint u8 u16 u32 u64 int i8 i16 i32 i64 f32 f64)
  * ```
  */
 #[lang="sub"]
-pub trait Sub<RHS,Result> {
+pub trait Sub<Sized? RHS, Result> for Sized? {
     /// The method for the `-` operator
     fn sub(&self, rhs: &RHS) -> Result;
 }
@@ -194,7 +194,7 @@ sub_impl!(uint u8 u16 u32 u64 int i8 i16 i32 i64 f32 f64)
  * ```
  */
 #[lang="mul"]
-pub trait Mul<RHS,Result> {
+pub trait Mul<Sized? RHS, Result>  for Sized? {
     /// The method for the `*` operator
     fn mul(&self, rhs: &RHS) -> Result;
 }
@@ -235,7 +235,7 @@ mul_impl!(uint u8 u16 u32 u64 int i8 i16 i32 i64 f32 f64)
  * ```
  */
 #[lang="div"]
-pub trait Div<RHS,Result> {
+pub trait Div<Sized? RHS, Result> for Sized? {
     /// The method for the `/` operator
     fn div(&self, rhs: &RHS) -> Result;
 }
@@ -276,7 +276,7 @@ div_impl!(uint u8 u16 u32 u64 int i8 i16 i32 i64 f32 f64)
  * ```
  */
 #[lang="rem"]
-pub trait Rem<RHS,Result> {
+pub trait Rem<Sized? RHS, Result>  for Sized? {
     /// The method for the `%` operator
     fn rem(&self, rhs: &RHS) -> Result;
 }
@@ -331,7 +331,7 @@ rem_float_impl!(f64, fmod)
  * ```
  */
 #[lang="neg"]
-pub trait Neg<Result> {
+pub trait Neg<Result> for Sized? {
     /// The method for the unary `-` operator
     fn neg(&self) -> Result;
 }
@@ -388,7 +388,7 @@ neg_uint_impl!(u64, i64)
  * ```
  */
 #[lang="not"]
-pub trait Not<Result> {
+pub trait Not<Result> for Sized? {
     /// The method for the unary `!` operator
     fn not(&self) -> Result;
 }
@@ -430,7 +430,7 @@ not_impl!(bool uint u8 u16 u32 u64 int i8 i16 i32 i64)
  * ```
  */
 #[lang="bitand"]
-pub trait BitAnd<RHS,Result> {
+pub trait BitAnd<Sized? RHS, Result> for Sized? {
     /// The method for the `&` operator
     fn bitand(&self, rhs: &RHS) -> Result;
 }
@@ -471,7 +471,7 @@ bitand_impl!(bool uint u8 u16 u32 u64 int i8 i16 i32 i64)
  * ```
  */
 #[lang="bitor"]
-pub trait BitOr<RHS,Result> {
+pub trait BitOr<Sized? RHS, Result> for Sized? {
     /// The method for the `|` operator
     fn bitor(&self, rhs: &RHS) -> Result;
 }
@@ -512,7 +512,7 @@ bitor_impl!(bool uint u8 u16 u32 u64 int i8 i16 i32 i64)
  * ```
  */
 #[lang="bitxor"]
-pub trait BitXor<RHS,Result> {
+pub trait BitXor<Sized? RHS, Result> for Sized? {
     /// The method for the `^` operator
     fn bitxor(&self, rhs: &RHS) -> Result;
 }
@@ -553,7 +553,7 @@ bitxor_impl!(bool uint u8 u16 u32 u64 int i8 i16 i32 i64)
  * ```
  */
 #[lang="shl"]
-pub trait Shl<RHS,Result> {
+pub trait Shl<Sized? RHS, Result> for Sized? {
     /// The method for the `<<` operator
     fn shl(&self, rhs: &RHS) -> Result;
 }
@@ -596,7 +596,7 @@ shl_impl!(uint u8 u16 u32 u64 int i8 i16 i32 i64)
  * ```
  */
 #[lang="shr"]
-pub trait Shr<RHS,Result> {
+pub trait Shr<Sized? RHS, Result> for Sized? {
     /// The method for the `>>` operator
     fn shr(&self, rhs: &RHS) -> Result;
 }
@@ -669,7 +669,7 @@ pub trait Index<Sized? Index, Sized? Result> for Sized? {
  * ```
  */
 #[lang="index_mut"]
-pub trait IndexMut<Sized? Index, Result> for Sized? {
+pub trait IndexMut<Sized? Index, Sized? Result> for Sized? {
     /// The method for the indexing (`Foo[Bar]`) operation
     fn index_mut<'a>(&'a mut self, index: &Index) -> &'a mut Result;
 }
@@ -712,7 +712,7 @@ pub trait IndexMut<Sized? Index, Result> for Sized? {
  * ```
  */
 #[lang="slice"]
-pub trait Slice<Idx, Sized? Result> for Sized? {
+pub trait Slice<Sized? Idx, Sized? Result> for Sized? {
     /// The method for the slicing operation foo[]
     fn as_slice_<'a>(&'a self) -> &'a Result;
     /// The method for the slicing operation foo[from..]
@@ -761,7 +761,7 @@ pub trait Slice<Idx, Sized? Result> for Sized? {
  * ```
  */
 #[lang="slice_mut"]
-pub trait SliceMut<Idx, Sized? Result> for Sized? {
+pub trait SliceMut<Sized? Idx, Sized? Result> for Sized? {
     /// The method for the slicing operation foo[]
     fn as_mut_slice_<'a>(&'a mut self) -> &'a mut Result;
     /// The method for the slicing operation foo[from..]
@@ -800,7 +800,7 @@ pub trait SliceMut<Idx, Sized? Result> for Sized? {
  * ```
  */
 #[lang="deref"]
-pub trait Deref<Sized? Result> {
+pub trait Deref<Sized? Result> for Sized? {
     /// The method called to dereference a value
     fn deref<'a>(&'a self) -> &'a Result;
 }
@@ -859,21 +859,21 @@ impl<'a, Sized? T> DerefMut<T> for &'a mut T {
 
 /// A version of the call operator that takes an immutable receiver.
 #[lang="fn"]
-pub trait Fn<Args,Result> {
+pub trait Fn<Args,Result> for Sized? {
     /// This is called when the call operator is used.
     extern "rust-call" fn call(&self, args: Args) -> Result;
 }
 
 /// A version of the call operator that takes a mutable receiver.
 #[lang="fn_mut"]
-pub trait FnMut<Args,Result> {
+pub trait FnMut<Args,Result> for Sized? {
     /// This is called when the call operator is used.
     extern "rust-call" fn call_mut(&mut self, args: Args) -> Result;
 }
 
 /// A version of the call operator that takes a by-value receiver.
 #[lang="fn_once"]
-pub trait FnOnce<Args,Result> {
+pub trait FnOnce<Args,Result> for Sized? {
     /// This is called when the call operator is used.
     extern "rust-call" fn call_once(self, args: Args) -> Result;
 }