[svn] r7767: nemerle/trunk/ncc/hierarchy/ClassMembers.n

pbludov svnadmin at nemerle.org
Fri Aug 24 05:27:09 CEST 2007


Log:
DescribeMember lacks "params" keyword for VarArgs methods.

Author: pbludov
Date: Fri Aug 24 05:27:07 2007
New Revision: 7767

Modified:
   nemerle/trunk/ncc/hierarchy/ClassMembers.n

Modified: nemerle/trunk/ncc/hierarchy/ClassMembers.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/ClassMembers.n	(original)
+++ nemerle/trunk/ncc/hierarchy/ClassMembers.n	Fri Aug 24 05:27:07 2007
@@ -264,8 +264,8 @@
           | _                    => "<unknown>"
         };
 
-      def makeTypeName(ty) { ty.FullName.Replace('+', '.') }
-      def add(str, iaAdd) { if (iaAdd) str + " " else "" }
+      def makeTypeName (ty) { ty.FullName.Replace('+', '.') }
+      def add (str, iaAdd) { if (iaAdd) str + " " else "" }
       def mekeGetSet (canRead, canWrite)
       {
         | (false, false) => ""
@@ -276,10 +276,17 @@
 
       match (m) {
         | m is IMethod =>
-          def parms = List.Map (m.GetParameters (), 
-                                fun (p : Fun_parm) { 
-                                    p.name + " : " + p.ty.ToString () 
-                                });
+          def describeParm (p) { p.name + " : " + p.ty.ToString () }
+          def parms =
+            if (m.IsVarArgs)
+            {
+              def (till_last, last) = List.DivideLast (m.GetParameters ());
+
+              List.Rev ("params " + describeParm (last) :: List.RevMap (till_last, describeParm));
+            }
+            else
+              List.Map (m.GetParameters (), describeParm);
+
           def ret_ty = m.ReturnType.ToString ();
           kind + " " + full_name + "(" + NString.Concat (", ", parms) + ") : " + ret_ty
 



More information about the svn mailing list