[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