diff options
author | michelou <michelou@epfl.ch> | 2006-10-23 17:49:33 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2006-10-23 17:49:33 +0000 |
commit | d6753d1eda95a94dc8f5fb67ada51e38f104916e (patch) | |
tree | be8b48a5d03d9887b4325f2123d9fc4b8b032daf /src/compiler | |
parent | 54a3755e36a1e52ff367b0b27d6d27dc0578967c (diff) | |
download | scala-d6753d1eda95a94dc8f5fb67ada51e38f104916e.tar.gz scala-d6753d1eda95a94dc8f5fb67ada51e38f104916e.tar.bz2 scala-d6753d1eda95a94dc8f5fb67ada51e38f104916e.zip |
separated constrs/defs tables for primitive typ...
separated constrs/defs tables for primitive types in DocGenerator.scala
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/doc/DocGenerator.scala | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala index 1c6c6b5fef..3c06d98bad 100644 --- a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala +++ b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala @@ -576,6 +576,11 @@ abstract class DocGenerator extends Models { </span>; } + private val kinds = + new TreeMap[String, Symbol => Boolean] + + "Constructor" -> ((s: Symbol) => s.isConstructor) + + "Def" -> ((s: Symbol) => s.isMethod) + private abstract class PrimitiveContentFrame extends ContentFrame0 { def sym: Symbol def path = urlFor0(sym, sym) @@ -601,32 +606,43 @@ abstract class DocGenerator extends Models { {Text(codeFor(kind))} <span class="entity">{Text(sym.nameString)}</span> </div> - <hr/> - <table cellpadding="3" class="member" summary=""> - <tr> - <td colspan="2" class="title">Def Summary</td> - </tr> - { { - for (val m <- sym.tpe.decls.toList; m hasFlag Flags.METHOD) yield + <hr/>.concat({ + val decls = sym.tpe.decls.toList + //compute table members once for each relevant kind + val tables = for (val k <- kinds.keys.toList) + yield Pair(k, decls filter kinds(k)) + for (val Pair(k, members) <- tables; !members.isEmpty) yield + <table cellpadding="3" class="member" summary="" style="margin:0 0 1.2em 0;"> <tr> - <td valign="top" class="modifiers"> - </td> - <td class="signature"><code>def</code> - { Text(m.nameString + " ").concat(m.tpe match { - case MethodType(params, result) => - (if (params.length > 0) - Text("(").concat(params.map(p => forType(p))).concat(")") - else - NodeSeq.Empty - ).concat(": ").concat(forType(result)) - case _ => - Text(": ").concat(forType(m.tpe)) - }) - } - </td> + <td colspan="2" class="title">{k} Summary</td> </tr> - } } - </table>) + { { + for (val m <- members) yield + <tr> + <td valign="top" class="modifiers"> + </td> + <td class="signature"><code>def</code> + { Text(m.nameString + " ").concat(m.tpe match { + case MethodType(typeParams, resultType) => + (if (typeParams.isEmpty) + NodeSeq.Empty + else + Text("(").concat(typeParams.map(p => forType(p))).concat(")") + ).concat(": ").concat(forType(resultType)) + case PolyType(typeParams, resultType) => + val tp = + if (typeParams.isEmpty) "" + else (typeParams map (.defString)).mkString("[", ",", "]") + Text(tp + ": ").concat(forType(resultType)) + case _ => + Text(": ").concat(forType(m.tpe)) + }) + } + </td> + </tr> + } } + </table> + })) } private val loader = getClass().getClassLoader() |