From c70292627c50adbbd5c4118a01a34bd7c23ba6b6 Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Mon, 14 Mar 2016 08:44:12 +0100 Subject: Remove unused classes from Scaladoc Several elements of the old Scaladoc are not in use anymore. To help with any reverting, the removal of these is done in a single commit (this one). The removal includes: - Old `Index`, the old top "index.html" - The letter index (with "_" and "deprecated") - The old `Template` which is superceded by `Entity` --- src/scaladoc/scala/tools/nsc/doc/DocFactory.scala | 5 - .../scala/tools/nsc/doc/doclet/Generator.scala | 1 - .../scala/tools/nsc/doc/doclet/Indexer.scala | 21 - src/scaladoc/scala/tools/nsc/doc/html/Doclet.scala | 4 +- .../scala/tools/nsc/doc/html/HtmlFactory.scala | 10 +- .../tools/nsc/doc/html/page/DeprecatedIndex.scala | 60 -- .../scala/tools/nsc/doc/html/page/Entity.scala | 6 +- .../scala/tools/nsc/doc/html/page/Index.scala | 75 -- .../tools/nsc/doc/html/page/IndexScript.scala | 5 +- .../tools/nsc/doc/html/page/ReferenceIndex.scala | 63 -- .../scala/tools/nsc/doc/html/page/Template.scala | 987 --------------------- 11 files changed, 11 insertions(+), 1226 deletions(-) delete mode 100644 src/scaladoc/scala/tools/nsc/doc/doclet/Indexer.scala delete mode 100644 src/scaladoc/scala/tools/nsc/doc/html/page/DeprecatedIndex.scala delete mode 100644 src/scaladoc/scala/tools/nsc/doc/html/page/Index.scala delete mode 100644 src/scaladoc/scala/tools/nsc/doc/html/page/ReferenceIndex.scala delete mode 100644 src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala (limited to 'src') diff --git a/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala b/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala index 47ddfb8aa9..fb6c39d7e3 100644 --- a/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/DocFactory.scala @@ -111,11 +111,6 @@ class DocFactory(val reporter: Reporter, val settings: doc.Settings) { processor case universer: Universer => val universe = makeUniverse(Left(files)) getOrElse { throw NoCompilerRunException } universer setUniverse universe - - docletInstance match { - case indexer: Indexer => indexer setIndex model.IndexModelFactory.makeIndex(universe) - case _ => () - } case _ => () } docletInstance.generate() diff --git a/src/scaladoc/scala/tools/nsc/doc/doclet/Generator.scala b/src/scaladoc/scala/tools/nsc/doc/doclet/Generator.scala index 42b56aa927..b4ede6d358 100644 --- a/src/scaladoc/scala/tools/nsc/doc/doclet/Generator.scala +++ b/src/scaladoc/scala/tools/nsc/doc/doclet/Generator.scala @@ -9,7 +9,6 @@ import scala.collection._ * to configure what data is actually available to the generator: * - A `Universer` provides a `Universe` data structure representing the interfaces and comments of the documented * program. - * - An `Indexer` provides precalculated indexing information about a universe. * To implement this class only requires defining method `generateImpl`. */ abstract class Generator { diff --git a/src/scaladoc/scala/tools/nsc/doc/doclet/Indexer.scala b/src/scaladoc/scala/tools/nsc/doc/doclet/Indexer.scala deleted file mode 100644 index 12fee69cca..0000000000 --- a/src/scaladoc/scala/tools/nsc/doc/doclet/Indexer.scala +++ /dev/null @@ -1,21 +0,0 @@ -package scala.tools.nsc -package doc -package doclet - -/** A `Generator` may implement the `Indexer` trait to gain access to pre-calculated indexing information */ -trait Indexer extends Generator with Universer { - - protected var indexField: Index = null - - def index: Index = indexField - - def setIndex(i: Index) { - assert(indexField == null) - indexField = i - } - - checks += { () => - indexField != null - } - -} diff --git a/src/scaladoc/scala/tools/nsc/doc/html/Doclet.scala b/src/scaladoc/scala/tools/nsc/doc/html/Doclet.scala index cad7cf3298..541266e4cc 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/Doclet.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/Doclet.scala @@ -11,10 +11,10 @@ import doclet._ /** The default doclet used by the scaladoc command line tool * when no user-provided doclet is provided. */ -class Doclet extends Generator with Universer with Indexer { +class Doclet extends Generator with Universer { def generateImpl() { - new html.HtmlFactory(universe, index, new ScalaDocReporter(universe.settings)).generate() + new html.HtmlFactory(universe, new ScalaDocReporter(universe.settings)).generate() } } diff --git a/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala b/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala index 4f332f1dbe..9d61cd2e2b 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala @@ -16,7 +16,7 @@ import page.diagram._ /** A class that can generate Scaladoc sites to some fixed root folder. * @author David Bernard * @author Gilles Dubochet */ -class HtmlFactory(val universe: doc.Universe, index: doc.Index, val reporter: ScalaDocReporter) { +class HtmlFactory(val universe: doc.Universe, val reporter: ScalaDocReporter) { import page.{IndexScript, EntityPage} /** The character encoding to be used for generated Scaladoc sites. @@ -99,16 +99,10 @@ class HtmlFactory(val universe: doc.Universe, index: doc.Index, val reporter: Sc libResources foreach (s => copyResource("lib/" + s)) - IndexScript(universe, index) writeFor this + IndexScript(universe) writeFor this - if (index.hasDeprecatedMembers) - new page.DeprecatedIndex(universe, index, reporter) writeFor this try { writeTemplates(_ writeFor this) - - for (letter <- index.firstLetterIndex) { - new html.page.ReferenceIndex(letter._1, index, universe, reporter) writeFor this - } } finally { DiagramStats.printStats(universe.settings) universe.dotRunner.cleanup() diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/DeprecatedIndex.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/DeprecatedIndex.scala deleted file mode 100644 index e8cb58c732..0000000000 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/DeprecatedIndex.scala +++ /dev/null @@ -1,60 +0,0 @@ -/* NSC -- new Scala compiler - * Copyright 2007-2013 LAMP/EPFL - */ - -package scala -package tools -package nsc -package doc -package html -package page - -import doc.model._ - -class DeprecatedIndex(universe: Universe, index: doc.Index, rep: ScalaDocReporter) extends HtmlPage { - - def reporter = rep - - def path = List("deprecated-list.html") - - def title = { - val s = universe.settings - ( if (!s.doctitle.isDefault) s.doctitle.value else "" ) + - ( if (!s.docversion.isDefault) (" " + s.docversion.value) else "" ) - } - - def headers = - - - - - - - private def entry(name: String, methods: Iterable[MemberEntity]) = { - val occurrences = methods.filter(_.deprecation.isDefined).map(method => - templateToHtml(method.inDefinitionTemplates.head) - ).toList.distinct - -
-
{ name }
-
{ - for (owner <- occurrences) yield owner ++ scala.xml.Text(" ") - }
-
- } - - def deprecatedEntries = { - val available = ('_' +: ('a' to 'z')).flatMap(index.firstLetterIndex.get) - - for (group <- available; - value <- group if value._2.find(_.deprecation.isDefined).isDefined) - yield value - } - - def body = - { - for(value <- deprecatedEntries) yield - entry(value._1, value._2.view) - } - -} diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/Entity.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/Entity.scala index 55a85474f6..6c8f989b8c 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/Entity.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/page/Entity.scala @@ -585,7 +585,7 @@ trait EntityPage extends HtmlPage {
++ scala.xml.Text("To access this member you can use a ") ++ type ascription ++ scala.xml.Text(":") ++ -
++
{"(" + Template.lowerFirstLetter(tpl.name) + ": " + conv.targetType.name + ")." + mbr.name + params }
+
++
{"(" + EntityPage.lowerFirstLetter(tpl.name) + ": " + conv.targetType.name + ")." + mbr.name + params }
} val shadowingWarning: NodeSeq = @@ -1129,4 +1129,8 @@ object EntityPage { def tpl = docTpl def reporter = rep } + + /* Vlad: Lesson learned the hard way: don't put any stateful code that references the model here, + * it won't be garbage collected and you'll end up filling the heap with garbage */ + def lowerFirstLetter(s: String) = if (s.length >= 1) s.substring(0,1).toLowerCase() + s.substring(1) else s } diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/Index.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/Index.scala deleted file mode 100644 index 8204f413fd..0000000000 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/Index.scala +++ /dev/null @@ -1,75 +0,0 @@ -/* NSC -- new Scala compiler - * Copyright 2007-2013 LAMP/EPFL - * @author David Bernard, Manohar Jonnalagedda, Felix Mulder - */ - -package scala.tools.nsc -package doc -package html -package page - -import model._ -import scala.collection._ -import scala.xml._ - -class Index(universe: doc.Universe, val index: doc.Index, rep: ScalaDocReporter) extends HtmlPage { - - def reporter = rep - - def path = List("index.html") - - def title = "" - - val headers = - - - - - - - - - val body = - - { search } -
-
-
-
-
-
-
-