summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2006-10-23 17:49:33 +0000
committermichelou <michelou@epfl.ch>2006-10-23 17:49:33 +0000
commitd6753d1eda95a94dc8f5fb67ada51e38f104916e (patch)
treebe8b48a5d03d9887b4325f2123d9fc4b8b032daf
parent54a3755e36a1e52ff367b0b27d6d27dc0578967c (diff)
downloadscala-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
-rw-r--r--src/compiler/scala/tools/nsc/doc/DocGenerator.scala64
-rw-r--r--test/files/ant/test-build.xml8
-rw-r--r--test/files/ant/test.check6
3 files changed, 48 insertions, 30 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()
diff --git a/test/files/ant/test-build.xml b/test/files/ant/test-build.xml
index aae3503385..7d28eccb47 100644
--- a/test/files/ant/test-build.xml
+++ b/test/files/ant/test-build.xml
@@ -93,6 +93,8 @@ INITIALISATION
</fail>
<fail message="Scala library '${scala-compiler.lib}' is not available">
<condition><not><and>
+ <available classname="scala.tools.ant.Scalac"
+ classpath="${scala-compiler.lib}"/>
<available classname="scala.tools.nsc.Main"
classpath="${scala-compiler.lib}"/>
<available classname="scala.tools.util.StringOps"
@@ -131,9 +133,9 @@ BUILD
/>
<dirname property="log.dir" file="${build.dir}"/>
<replace
- file="${log.dir}/test-ant.log"
- token="${user.name}"
- value="USERNAME"
+ file="${log.dir}/${ant.project.name}-ant.log"
+ token="${log.dir}"
+ value="[...]/files/ant"
/>
</target>
diff --git a/test/files/ant/test.check b/test/files/ant/test.check
index 16ecead7bc..6675558506 100644
--- a/test/files/ant/test.check
+++ b/test/files/ant/test.check
@@ -1,4 +1,4 @@
-Buildfile: /home/USERNAME/projects/scala-installer/dependencies/scala/test/files/ant/test-build.xml
+Buildfile: [...]/files/ant/test-build.xml
quick.init:
@@ -9,5 +9,5 @@ installed.init:
init:
build:
- [mkdir] Created dir: /home/USERNAME/projects/scala-installer/dependencies/scala/test/files/ant/test-ant.obj
- [scalac] Compiling 1 source file to /home/USERNAME/projects/scala-installer/dependencies/scala/test/files/ant/test-ant.obj
+ [mkdir] Created dir: [...]/files/ant/test-ant.obj
+ [scalac] Compiling 1 source file to [...]/files/ant/test-ant.obj