[nem-pl] Re: [svn] nemerle/trunk/lib/internal-numbered.n
Kamil Skalski
nazgul at omega.pl
Thu Jun 3 02:13:00 CEST 2004
Tuesday 01 June 2004 23:17, rzyj wrote:
> Author: rzyj
> Date: Tue Jun 1 23:17:22 2004
> New Revision: 2566
>
> Modified:
> nemerle/trunk/lib/internal-numbered.n
> Log:
> Add ToString, and Equals methods to tuples.
>
>
> Modified: nemerle/trunk/lib/internal-numbered.n
> ===========================================================================
>=== --- nemerle/trunk/lib/internal-numbered.n (original)
> +++ nemerle/trunk/lib/internal-numbered.n Tue Jun 1 23:17:22 2004
> @@ -87,6 +87,23 @@
> {
> public field1 : object;
> public field2 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple2);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -95,6 +112,25 @@
> public field1 : object;
> public field2 : object;
> public field3 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple3);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -104,6 +140,27 @@
> public field2 : object;
> public field3 : object;
> public field4 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple4);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -114,6 +171,29 @@
> public field3 : object;
> public field4 : object;
> public field5 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ", "
> + + field5.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple5);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + && field5.Equals (t.field5)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -125,6 +205,31 @@
> public field4 : object;
> public field5 : object;
> public field6 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ", "
> + + field5.ToString () + ", "
> + + field6.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple6);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + && field5.Equals (t.field5)
> + && field6.Equals (t.field6)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -137,6 +242,33 @@
> public field5 : object;
> public field6 : object;
> public field7 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ", "
> + + field5.ToString () + ", "
> + + field6.ToString () + ", "
> + + field7.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple7);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + && field5.Equals (t.field5)
> + && field6.Equals (t.field6)
> + && field7.Equals (t.field7)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -150,6 +282,35 @@
> public field6 : object;
> public field7 : object;
> public field8 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ", "
> + + field5.ToString () + ", "
> + + field6.ToString () + ", "
> + + field7.ToString () + ", "
> + + field8.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple8);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + && field5.Equals (t.field5)
> + && field6.Equals (t.field6)
> + && field7.Equals (t.field7)
> + && field8.Equals (t.field8)
> + }
> + else
> + false
> + }
> }
>
> [Record]
> @@ -164,5 +325,36 @@
> public field7 : object;
> public field8 : object;
> public field9 : object;
> +
> + public override ToString () : string
> + {
> + "(" + field1.ToString () + ", "
> + + field2.ToString () + ", "
> + + field3.ToString () + ", "
> + + field4.ToString () + ", "
> + + field5.ToString () + ", "
> + + field6.ToString () + ", "
> + + field7.ToString () + ", "
> + + field8.ToString () + ", "
> + + field9.ToString () + ")"
> + }
> +
> + public override Equals (o : System.Object) : bool
> + {
> + if (o.GetType () == GetType ()){
> + def t = (o :> Tuple9);
> + field1.Equals (t.field1)
> + && field2.Equals (t.field2)
> + && field3.Equals (t.field3)
> + && field4.Equals (t.field4)
> + && field5.Equals (t.field5)
> + && field6.Equals (t.field6)
> + && field7.Equals (t.field7)
> + && field8.Equals (t.field8)
> + && field9.Equals (t.field9)
hmm...
postscan
macro MakeEquals (t : TypeBuilder) {
def flds = t.GetFields (NemerleAttributes.Public %|
NemerleAttributes.NonPublic %|
NemerleAttributes.Instance);
def body =
List.FoldLeft (flds, <[ true ]>, fun (x : IField, acc) {
def nm = UsesiteSymbol (x.Name);
<[ $acc && $(nm : name).Equals (parm.$(nm : name)) ]>
};
t.Define (<[ decl:
public Equals (parm : $(t.FullName () : dyn)) { $body }
}
Jak przetestuję, co commitnę :D
More information about the devel-pl
mailing list