Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs
diff options
context:
space:
mode:
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2010-01-21 01:20:03 +0300
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2010-01-21 01:20:03 +0300
commitde48d868936e0ad9853bab6df3fdb1c06e761b68 (patch)
treead305a85a497c099b3e7cc72fa9679e1156b8e03 /mcs
parentfe982b68ac0a736de6ca849b2cfba50a388892d5 (diff)
2010-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
* Tuples.cs: explicitly implement IStructural*. svn path=/trunk/mcs/; revision=149933
Diffstat (limited to 'mcs')
-rw-r--r--mcs/class/corlib/System/ChangeLog4
-rw-r--r--mcs/class/corlib/System/Tuples.cs152
2 files changed, 94 insertions, 62 deletions
diff --git a/mcs/class/corlib/System/ChangeLog b/mcs/class/corlib/System/ChangeLog
index 1d201518358..591aa825802 100644
--- a/mcs/class/corlib/System/ChangeLog
+++ b/mcs/class/corlib/System/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * Tuples.cs: explicitly implement IStructural*.
+
2010-01-17 Carlos Alberto Cortez <calberto.cortez@gmail.com>
* UInt64.cs: Implement a lightweight version of the Parse method for
diff --git a/mcs/class/corlib/System/Tuples.cs b/mcs/class/corlib/System/Tuples.cs
index 47ed26f7600..eeacc0d329d 100644
--- a/mcs/class/corlib/System/Tuples.cs
+++ b/mcs/class/corlib/System/Tuples.cs
@@ -77,19 +77,22 @@ namespace System
get { return item1; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1>;
if (t == null) {
@@ -102,10 +105,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
return comparer.GetHashCode (item1);
}
@@ -136,19 +139,22 @@ namespace System
get { return item2; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2>;
if (t == null) {
@@ -162,10 +168,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -204,19 +210,22 @@ namespace System
get { return item3; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3>;
if (t == null) {
@@ -231,10 +240,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -280,19 +289,22 @@ namespace System
get { return item4; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3, T4>;
if (t == null) {
@@ -308,10 +320,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -364,19 +376,22 @@ namespace System
get { return item5; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3, T4, T5>;
if (t == null) {
@@ -393,10 +408,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -456,19 +471,22 @@ namespace System
get { return item6; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3, T4, T5, T6>;
if (t == null) {
@@ -486,10 +504,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -556,19 +574,22 @@ namespace System
get { return item7; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3, T4, T5, T6, T7>;
if (t == null) {
@@ -587,10 +608,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -652,19 +673,22 @@ namespace System
get { return rest; }
}
- public int CompareTo (object obj)
+ int IComparable.CompareTo (object obj)
{
- return CompareTo (obj, Comparer<object>.Default);
+ return ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);
}
- [MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }
+ [MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)
+ {
+ throw new NotImplementedException ();
+ }
public override bool Equals (object obj)
{
- return Equals (obj, EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);
}
- public bool Equals (object other, IEqualityComparer comparer)
+ bool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)
{
var t = other as Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>;
if (t == null) {
@@ -684,10 +708,10 @@ namespace System
public override int GetHashCode ()
{
- return GetHashCode (EqualityComparer<object>.Default);
+ return ((IStructuralEquatable) this).GetHashCode (EqualityComparer<object>.Default);
}
- public int GetHashCode (IEqualityComparer comparer)
+ int IStructuralEquatable.GetHashCode (IEqualityComparer comparer)
{
int h = comparer.GetHashCode (item1);
h = (h << 5) - h + comparer.GetHashCode (item2);
@@ -705,6 +729,7 @@ namespace System
return String.Format ("({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})", item1, item2, item3, item4, item5, item6, item7, rest);
}
}
+
}
#endif
@@ -757,22 +782,25 @@ public class TupleGen
}
Console.WriteLine ();
- Console.WriteLine ("\t\tpublic int CompareTo (object obj)");
+ Console.WriteLine ("\t\tint IComparable.CompareTo (object obj)");
Console.WriteLine ("\t\t{");
- Console.WriteLine ("\t\t\treturn CompareTo (obj, Comparer<object>.Default);");
+ Console.WriteLine ("\t\t\treturn ((IStructuralComparable) this).CompareTo (obj, Comparer<object>.Default);");
Console.WriteLine ("\t\t}");
Console.WriteLine ();
- Console.WriteLine ("\t\t[MonoTODO] public int CompareTo (object other, IComparer comparer) { throw new NotImplementedException (); }");
+ Console.WriteLine ("\t\t[MonoTODO] int IStructuralComparable.CompareTo (object other, IComparer comparer)");
+ Console.WriteLine ("\t\t{");
+ Console.WriteLine ("\t\t\tthrow new NotImplementedException ();");
+ Console.WriteLine ("\t\t}");
Console.WriteLine ();
Console.WriteLine ("\t\tpublic override bool Equals (object obj)");
Console.WriteLine ("\t\t{");
- Console.WriteLine ("\t\t\treturn Equals (obj, EqualityComparer<object>.Default);");
+ Console.WriteLine ("\t\t\treturn ((IStructuralEquatable) this).Equals (obj, EqualityComparer<object>.Default);");
Console.WriteLine ("\t\t}");
Console.WriteLine ();
- Console.WriteLine ("\t\tpublic bool Equals (object other, IEqualityComparer comparer)");
+ Console.WriteLine ("\t\tbool IStructuralEquatable.Equals (object other, IEqualityComparer comparer)");
Console.WriteLine ("\t\t{");
Console.WriteLine ("\t\t\tvar t = other as {0};", type_name);
Console.WriteLine ("\t\t\tif (t == null) {");
@@ -803,7 +831,7 @@ public class TupleGen
Console.WriteLine ("\t\t}");
Console.WriteLine ();
- Console.WriteLine ("\t\tpublic int GetHashCode (IEqualityComparer comparer)");
+ Console.WriteLine ("\t\tint IStructuralEquatable.GetHashCode (IEqualityComparer comparer)");
Console.WriteLine ("\t\t{");
if (arity == 1) {
Console.WriteLine ("\t\t\treturn comparer.GetHashCode ({0});", GetItemName (arity));