[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