[svn] r7528: nemerle/trunk/ncc/hierarchy/XmlDump.n
pbludov
svnadmin at nemerle.org
Wed Mar 14 09:16:20 CET 2007
Log:
Xml doc key for multidimension arrays issue.
Author: pbludov
Date: Wed Mar 14 09:16:18 2007
New Revision: 7528
Modified:
nemerle/trunk/ncc/hierarchy/XmlDump.n
Modified: nemerle/trunk/ncc/hierarchy/XmlDump.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/XmlDump.n (original)
+++ nemerle/trunk/ncc/hierarchy/XmlDump.n Wed Mar 14 09:16:18 2007
@@ -436,14 +436,26 @@
}
}
+ def appendArrayType (sb, t, rank) {
+ AppendParmTypeName(sb, t, m)
+ .Append ("[")
+
+ // Seems to be a bug in the c# compiler:
+ // multidimension arrays are 0 based, while unidimension arrays are -1 based.
+ // Since all xml doc tools are aware of this bug, we must be compatible with it too.
+ //
+ .AppendWhen(rank > 1, sb => sb.AppendNTimes (rank, "0:", ","))
+ .Append ("]");
+ }
+
match (p.Fix ()) {
| Class (tycon, args) => appendTypeNameAndArgs (sb, tycon.FullName, args);
| TyVarRef (tyvar) => appendStaticTyVarName (sb, tyvar);
- | Array (t, rank) => AppendParmTypeName (sb, t, m).Append ("[").AppendNTimes (rank, "0:", ",").Append ("]");
+ | Array (t, rank) => appendArrayType (sb, t, rank);
| Tuple (args) => appendTypeNameAndArgs (sb, "Nemerle.Builtins.Tuple", args);
| Fun (from, to) => appendFunctionTypeArgs (sb, from, to);
| Ref (t)
- | Out (t) => AppendParmTypeName (sb, t, m).AppendUnless (t.CanBeNull, sb => sb.Append ("@"));
+ | Out (t) => AppendParmTypeName (sb, t, m).Append("@");
| Void => sb.Append ("System.Void");
| Intersection => Util.ice ("Got MType.Intersection for doc comment");
}
More information about the svn
mailing list