summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorcremet <cremet@epfl.ch>2003-11-11 13:25:09 +0000
committercremet <cremet@epfl.ch>2003-11-11 13:25:09 +0000
commit8f126982806efc1c68ac717c7fd9dba70d85e787 (patch)
tree0529067d6e640a3e5e4c95a80c123052fc143504 /sources
parent2521f5270d8599a6407588cd3ab92143c77bc827 (diff)
downloadscala-8f126982806efc1c68ac717c7fd9dba70d85e787.tar.gz
scala-8f126982806efc1c68ac717c7fd9dba70d85e787.tar.bz2
scala-8f126982806efc1c68ac717c7fd9dba70d85e787.zip
- Fixing of bugs.
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/tools/scaladoc/HTMLGenerator.java212
-rw-r--r--sources/scala/tools/scaladoc/Location.java25
-rw-r--r--sources/scala/tools/scaladoc/ScalaSearch.java3
-rw-r--r--sources/scala/tools/scaladoc/SymbolTablePrinter.java135
4 files changed, 179 insertions, 196 deletions
diff --git a/sources/scala/tools/scaladoc/HTMLGenerator.java b/sources/scala/tools/scaladoc/HTMLGenerator.java
index 60ceb95a57..9f5233e9d4 100644
--- a/sources/scala/tools/scaladoc/HTMLGenerator.java
+++ b/sources/scala/tools/scaladoc/HTMLGenerator.java
@@ -62,31 +62,22 @@ public class HTMLGenerator {
public static final String VERSION =
System.getProperty("scala.version", "unknown version");
- public static final String DEFAULT_DOCTITLE = "";
- public static final String DEFAULT_WINDOWTITLE = "Generated Documentation";
-
/*
* Names of predefined page names.
*/
- protected final String PAGE_DEFAULT_SUFFIX = ".html";
- protected final String PAGE_OBJECT_SUFFIX = "-object" + PAGE_DEFAULT_SUFFIX;
-
- protected final String FRAME_PAGE_NAME = "index.html";
- protected final String INDEX_PAGE_NAME = "all.html";
- protected final String PAGE_HELP = "help-doc.html";
- protected final String PACKAGE_LIST_PAGE = "packageList.html";
- protected final String ROOT_PAGE = "root.html";
- protected final String PAGE_PACKAGE_FRAME = "package-frame.html";
- protected final String PAGE_PACKAGE_SUMMARY = "package-summary.html";
- protected final String PACKAGE_SUMMARY = "summary.html";
- protected final String PAGE_ALLCLASSES_FRAME = PACKAGE_SUMMARY;
+ protected final String FRAME_PAGE = "index.html";
+ protected final String ROOT_PAGE = Location.ROOT_NAME + ".html";
+ protected final String PACKAGE_LIST_PAGE = "package-list-page.html";
+ protected final String HELP_PAGE = "help-page.html";
+ protected final String INDEX_PAGE = "index-page.html";
+ protected final String PACKAGE_PAGE = "package-page.html";
/*
* Names of frames.
*/
- protected final String ROOT_FRAME_NAME = "rootFrame";
- protected final String PACKAGES_FRAME_NAME = "packagesFrame";
- protected final String CLASSES_FRAME_NAME = "classesFrame";
+ protected final String ROOT_FRAME = "rootFrame";
+ protected final String PACKAGES_FRAME = "packagesFrame";
+ protected final String CLASSES_FRAME = "classesFrame";
/*
* HTML meta information.
@@ -223,16 +214,18 @@ public class HTMLGenerator {
*/
protected final Stack stack = new Stack();
- /**
- * Dummy symbols used as markers for the generation of special HTML pages
- */
- protected final Symbol indexPage = new NoSymbol();
- protected final Symbol helpPage = new NoSymbol();
-
private final Symbol JAVALANG; // !!! remove ?
private final Type ROOT_TYPE; // !!! remove ?
/**
+ * Navigation context.
+ */
+ private final int ROOT_NAV_CONTEXT = 0; // on the root page
+ private final int INDEX_NAV_CONTEXT = 1; // on the index page
+ private final int HELP_NAV_CONTEXT = 2; // on the help page
+ private final int CONTAINER_NAV_CONTEXT = 3; // on a container page different from the root.
+
+ /**
* Creates a new instance.
*
* @param tree
@@ -303,12 +296,12 @@ public class HTMLGenerator {
else
page = new HTMLPrinter(out, title, representation, stylesheet);
symtab = new SymbolTablePrinter(this, page.getCodePrinter());
- } catch (IOException exception) {
- throw Debug.abort(exception); // !!! reporting an error would be wiser
+ uri = new URI(".");
+ } catch (Exception e) {
+ throw Debug.abort(e); // !!! reporting an error would be wiser
}
}
-
/**
* Closes the Writer object associated with both printer objects.
*/
@@ -396,17 +389,6 @@ public class HTMLGenerator {
return anchors.containsKey(OneTree.symbol(sym));
}
-
- /**
- * Give the HTML label of this symbol.
- *
- * @param sym
- */
- protected String label(Symbol sym) {
- String anchor = (String) anchors.get(OneTree.symbol(sym));
- return anchor.substring(anchor.indexOf('#') + 1);
- }
-
/**
* Returns the comment associated with a given symbol.
*
@@ -429,7 +411,8 @@ public class HTMLGenerator {
*/
protected Tree[][] members(Tree tree) {
switch (tree) {
- case ClassDef(int mods, Name name, AbsTypeDef[] tparams, ValDef[][] vparams, Tree tpe, Template impl):
+ case ClassDef(int mods, Name name, AbsTypeDef[] tparams, ValDef[][] vparams,
+ Tree tpe, Template impl):
return members(impl.body);
case ModuleDef(int mods, Name name, Tree tpe, Template impl):
return members(impl.body);
@@ -484,7 +467,10 @@ public class HTMLGenerator {
page.printOpenBody(new XMLAttribute[]{
new XMLAttribute("onload", "setWindowTitle('" + windowTitle + "');")
});
- addNavigationBar(sym);
+ if (sym.isRoot())
+ addNavigationBar(ROOT_NAV_CONTEXT);
+ else
+ addNavigationBar(CONTAINER_NAV_CONTEXT);
page.printlnHLine();
addTitle(sym);
@@ -504,7 +490,10 @@ public class HTMLGenerator {
addMemberDetail(members[i], titles[i] + " Detail");
page.printlnHLine();
- addNavigationBar(sym);
+ if (sym.isRoot())
+ addNavigationBar(ROOT_NAV_CONTEXT);
+ else
+ addNavigationBar(CONTAINER_NAV_CONTEXT);
if (validate)
addValidationBar();
page.printFootpage();
@@ -537,11 +526,11 @@ public class HTMLGenerator {
*
* @param sym
*/
- protected void addNavigationBar(Symbol sym) {
+ protected void addNavigationBar(int navigationContext) {
try {
String overviewLink = Location.asSeenFrom(new URI(ROOT_PAGE), uri).toString();
- String indexLink = Location.asSeenFrom(new URI(INDEX_PAGE_NAME), uri).toString();
- String helpLink = Location.asSeenFrom(new URI(PAGE_HELP), uri).toString();
+ String indexLink = Location.asSeenFrom(new URI(INDEX_PAGE), uri).toString();
+ String helpLink = Location.asSeenFrom(new URI(HELP_PAGE), uri).toString();
page.printlnOTag("table", ATTRS_NAVIGATION).indent();
page.printlnOTag("tr").indent();
@@ -549,28 +538,29 @@ public class HTMLGenerator {
page.printlnOTag("table").indent();
page.printlnOTag("tr").indent();
+
// overview link
- if (sym.isRoot())
+ if (navigationContext == ROOT_NAV_CONTEXT)
page.printlnTag("td", ATTRS_NAVIGATION_SELECTED, "Overview");
else {
page.printOTag("td", ATTRS_NAVIGATION_ENABLED);
- page.printAhref(overviewLink, ROOT_FRAME_NAME, "Overview");
+ page.printAhref(overviewLink, ROOT_FRAME, "Overview");
page.printlnCTag("td");
}
// index link
- if (sym == indexPage)
+ if (navigationContext == INDEX_NAV_CONTEXT)
page.printlnTag("td", ATTRS_NAVIGATION_SELECTED, "Index");
else {
page.printOTag("td", ATTRS_NAVIGATION_ENABLED);
- page.printAhref(indexLink, ROOT_FRAME_NAME, "Index");
+ page.printAhref(indexLink, ROOT_FRAME, "Index");
page.printlnCTag("td");
}
// help link
- if (sym == helpPage)
+ if (navigationContext == HELP_NAV_CONTEXT)
page.printlnTag("td", ATTRS_NAVIGATION_SELECTED, "Help");
else {
page.printOTag("td", ATTRS_NAVIGATION_ENABLED);
- page.printAhref(helpLink, ROOT_FRAME_NAME, "Help");
+ page.printAhref(helpLink, ROOT_FRAME, "Help");
page.printlnCTag("td");
}
@@ -602,7 +592,7 @@ public class HTMLGenerator {
page.printlnOTag("div", ATTRS_VALIDATION);
page.indent();
page.printlnAhref(
- "http://validator.w3.org/check/referer", ROOT_FRAME_NAME,
+ "http://validator.w3.org/check/referer", ROOT_FRAME,
"validate html");
page.undent();
page.printlnCTag("div");
@@ -626,9 +616,7 @@ public class HTMLGenerator {
} else {
// in
page.print("in ");
- String ownerName = removeHtmlSuffix(Location.getURI(sym.owner()).toString());
- String target = ref(sym.owner());
- page.printlnAhref(target, ROOT_FRAME_NAME, ownerName);
+ printPath(sym.owner());
// kind and name
page.printlnOTag("div", ATTRS_ENTITY).indent();
@@ -642,7 +630,7 @@ public class HTMLGenerator {
// complete signature
// !!! page.println(printer().printTemplateHtmlSignature(sym, false).toString());
- symtab.printTemplateHtmlSignature(sym, sym.owner(), false);
+ symtab.printTemplateHtmlSignature(sym, false);
// implementing classes or modules
if (sym.isClass()) {
@@ -658,10 +646,11 @@ public class HTMLGenerator {
Symbol sub = (Symbol) p.fst;
Type tipe = (Type) p.snd;
page.printlnOTag("dd");
- defString(sub, sym, true /*addLink*/);
+
+ defString(sub, true /*addLink*/);
if (sub.owner() != sym.owner()) {
page.print(" in ");
- page.printlnAhref(ref(sub.owner()), ROOT_FRAME_NAME,
+ page.printlnAhref(ref(sub.owner()), ROOT_FRAME,
sub.owner().fullNameString());
}
page.printlnCTag("dd");
@@ -745,7 +734,7 @@ public class HTMLGenerator {
// signature
page.printlnOTag("td", ATTRS_SIGNATURE).indent();
page.printOTag("code");
- defString(sym, Symbol.NONE, true /*addLink*/);
+ defString(sym, true /*addLink*/);
page.printlnCTag("code");
// short description
@@ -807,7 +796,7 @@ public class HTMLGenerator {
page.printlnOTag("pre");
String mods = Modifiers.Helper.toString(sym.flags);
if (mods.length() > 0) page.print(mods + " ");
- symtab.printSignature(sym, Symbol.NONE, false /*addLink*/);
+ symtab.printSignature(sym, false /*addLink*/);
page.printlnCTag("pre");
// comment
@@ -833,13 +822,9 @@ public class HTMLGenerator {
// owner
page.printlnOTag("tr").indent();
page.printlnOTag("td", new XMLAttribute[]{
- new XMLAttribute("class", "inherited-owner")}).indent();
+ new XMLAttribute("class", "inherited-owner")}).indent();
page.print(inheritedMembers + " inherited from ");
- String ownerName = owners[i].fullNameString();
- if (isReferenced(owners[i]))
- page.printlnAhref(ref(owners[i]), ROOT_FRAME_NAME, ownerName);
- else
- page.println(ownerName);
+ printPath(owners[i]);
page.undent();
page.printlnCTag("td").undent();
page.printlnCTag("tr");
@@ -851,11 +836,7 @@ public class HTMLGenerator {
Symbol[] members = (Symbol[]) group.get(owners[i]);
for (int j = 0; j < members.length; j++) {
if (j > 0) page.print(", ");
- String memberName = members[j].nameString();
- if (isReferenced(members[j]))
- page.printAhref(ref(members[j]), ROOT_FRAME_NAME, memberName);
- else
- page.print(memberName);
+ printSymbol(members[j], true);
}
page.undent();
page.printlnCTag("td").undent();
@@ -873,15 +854,15 @@ public class HTMLGenerator {
* @param addLink Generates an hypertext reference if the parameter
* <code>addLink</code> is <code>true</code>
*/
- void defString(Symbol sym, Symbol user, boolean addLink) {
+ void defString(Symbol sym, boolean addLink) {
if (sym.isRoot())
page.print("Root class");
else if (sym.isClass() || sym.isModule())
- symtab.printTemplateSignature(sym, user, addLink);
+ symtab.printTemplateSignature(sym, addLink);
else if (sym.isType() && !sym.isParameter())
- symtab.printShortSignature(sym, user, addLink);
+ symtab.printShortSignature(sym, addLink);
else
- symtab.printSignature(sym, user, addLink);
+ symtab.printSignature(sym, addLink);
}
/**
@@ -942,7 +923,7 @@ public class HTMLGenerator {
* @param title The page title
*/
protected void createFramePage(String title) {
- createPrinters(FRAME_PAGE_NAME, title);
+ createPrinters(FRAME_PAGE, title);
page.printHeader(ATTRS_META, getGenerator());
page.printlnOTag("frameset", new XMLAttribute[] {
@@ -952,14 +933,14 @@ public class HTMLGenerator {
page.printlnOTag("frame", new XMLAttribute[] {
new XMLAttribute("src", PACKAGE_LIST_PAGE),
- new XMLAttribute("name", PACKAGES_FRAME_NAME)});
+ new XMLAttribute("name", PACKAGES_FRAME)});
page.printlnOTag("frame", new XMLAttribute[] {
- new XMLAttribute("src", PAGE_ALLCLASSES_FRAME),
- new XMLAttribute("name", CLASSES_FRAME_NAME)}).undent();
+ new XMLAttribute("src", PACKAGE_PAGE),
+ new XMLAttribute("name", CLASSES_FRAME)}).undent();
page.printlnCTag("frameset");
page.printlnOTag("frame", new XMLAttribute[] {
new XMLAttribute("src", ROOT_PAGE),
- new XMLAttribute("name", ROOT_FRAME_NAME)});
+ new XMLAttribute("name", ROOT_FRAME)});
page.printlnOTag("noframes").indent();
page.printlnSTag("p");
@@ -1010,10 +991,10 @@ public class HTMLGenerator {
/** Returns the summary page attached to a package symbol. */
private String packageSummaryPage(Symbol sym) {
if (sym.isRoot())
- return PACKAGE_SUMMARY;
+ return PACKAGE_PAGE;
else {
String packagePage = Location.getURI(sym).toString();
- return removeHtmlSuffix(packagePage) + File.separator + PACKAGE_SUMMARY;
+ return removeHtmlSuffix(packagePage) + File.separator + PACKAGE_PAGE;
}
}
@@ -1034,7 +1015,7 @@ public class HTMLGenerator {
Symbol sym = trees[i].symbol();
page.printAhref(
packageSummaryPage(sym),
- CLASSES_FRAME_NAME,
+ CLASSES_FRAME,
sym.fullNameString());
page.printlnSTag("br");
}
@@ -1064,10 +1045,10 @@ public class HTMLGenerator {
if (! sym.isRoot()) {
String name = sym.nameString();
if (sym.isPackage())
- page.printAhref(ref(sym), CLASSES_FRAME_NAME, name);
+ page.printAhref(ref(sym), CLASSES_FRAME, name);
else {
Symbol user = (useFullName) ? global.definitions.ROOT : Symbol.NONE;
- page.printAhref(ref(sym), ROOT_FRAME_NAME, name);
+ page.printAhref(ref(sym), ROOT_FRAME, name);
}
page.printlnSTag("br");
}
@@ -1094,7 +1075,7 @@ public class HTMLGenerator {
page.printOpenBody();
addDocumentationTitle(new XMLAttribute[]{
new XMLAttribute("class", "doctitle-larger")});
- page.printAhref(PACKAGE_SUMMARY, CLASSES_FRAME_NAME, "All objects, traits and classes");
+ page.printAhref(PACKAGE_PAGE, CLASSES_FRAME, "All objects, traits and classes");
page.printlnSTag("p");
printPackagesTable(packages, "Packages");
if (validate)
@@ -1126,7 +1107,7 @@ public class HTMLGenerator {
page.printlnOTag("tr").indent();
page.printlnOTag("td", ATTRS_NAVIGATION_LINKS).indent();
- page.printlnAhref(ref(sym), ROOT_FRAME_NAME, sym.fullNameString());
+ page.printlnAhref(ref(sym), ROOT_FRAME, sym.fullNameString());
page.printlnCTag("td");
page.printlnCTag("tr");
@@ -1151,14 +1132,14 @@ public class HTMLGenerator {
* @param title The page title
*/
protected void createIndexPage(String title) {
- createPrinters(INDEX_PAGE_NAME, title);
+ createPrinters(INDEX_PAGE, title);
page.printHeader(ATTRS_META, getGenerator());
String windowTitle = title + " (" + doctitle.replaceAll("<.*>", " ") + ")";
page.printOpenBody(new XMLAttribute[]{
new XMLAttribute("onload", "setWindowTitle('" + windowTitle + "');")
});
- addNavigationBar(indexPage);
+ addNavigationBar(INDEX_NAV_CONTEXT);
page.printlnHLine();
page.printlnOTag("table", ATTRS_MEMBER).indent();
@@ -1174,7 +1155,7 @@ public class HTMLGenerator {
Character[] chars = (Character[]) index.fst;
Map map = (Map) index.snd;
for (int i = 0; i < chars.length; i++)
- page.printlnAhref("#" + i, ROOT_FRAME_NAME, HTMLPrinter.encode(chars[i]));
+ page.printlnAhref("#" + i, ROOT_FRAME, HTMLPrinter.encode(chars[i]));
page.printlnHLine();
for (int i = 0; i < chars.length; i++) {
Character car = chars[i];
@@ -1187,7 +1168,6 @@ public class HTMLGenerator {
for (int j = 0; j < trees.length; j++) {
page.printOTag("dt");
addIndexEntry(trees[j].symbol());
- // page.printlnTag("em", Location.getURI(trees[j].symbol()).toString()); // for debugging
page.printlnCTag("dt");
page.printlnTag("dd", firstSentence(getComment(trees[j].symbol())));
}
@@ -1195,7 +1175,7 @@ public class HTMLGenerator {
}
page.printlnHLine();
- addNavigationBar(indexPage);
+ addNavigationBar(INDEX_NAV_CONTEXT);
if (validate)
addValidationBar();
page.printFootpage();
@@ -1209,14 +1189,14 @@ public class HTMLGenerator {
* @param title The page title
*/
protected void createHelpPage(String title) {
- createPrinters(PAGE_HELP, title);
+ createPrinters(HELP_PAGE, title);
page.printHeader(ATTRS_META, getGenerator());
String windowTitle = title + " (" + doctitle.replaceAll("<.*>", " ") + ")";
page.printOpenBody(new XMLAttribute[]{
new XMLAttribute("onload", "setWindowTitle('" + windowTitle + "');")
});
- addNavigationBar(helpPage);
+ addNavigationBar(HELP_NAV_CONTEXT);
page.printlnHLine();
XMLAttribute[] h3 = new XMLAttribute[]{
@@ -1235,7 +1215,7 @@ public class HTMLGenerator {
page.printlnTag("div", h3, "Overview");
page.printlnOTag("blockquote").indent();
page.print("The ");
- page.printAhref(ROOT_PAGE, ROOT_FRAME_NAME, "Overview");
+ page.printAhref(ROOT_PAGE, ROOT_FRAME, "Overview");
page.println(" page is the front page of this API document and "
+ "provides a list of all top-level packages, classes, traits "
+ "and objects with a summary for each. "
@@ -1288,7 +1268,7 @@ public class HTMLGenerator {
page.printlnTag("div", h3, "Index");
page.printlnOTag("blockquote").indent();
page.print("The ");
- page.printAhref(INDEX_PAGE_NAME, ROOT_FRAME_NAME, "Index");
+ page.printAhref(INDEX_PAGE, ROOT_FRAME, "Index");
page.print(" contains an alphabetic list of all classes, interfaces, "
+ "constructors, methods, and fields.");
page.printlnCTag("blockquote");
@@ -1299,7 +1279,7 @@ public class HTMLGenerator {
page.printlnCTag("div");
page.printlnHLine();
- addNavigationBar(helpPage);
+ addNavigationBar(HELP_NAV_CONTEXT);
if (validate)
addValidationBar();
page.printFootpage();
@@ -1308,6 +1288,39 @@ public class HTMLGenerator {
}
/**
+ * Adds to the current page an hyperlinked path leading to a given
+ * symbol (including itself).
+ */
+ protected void printPath(Symbol sym) {
+ String name = removeHtmlSuffix(Location.getURI(sym).toString());
+ if (isReferenced(sym)) {
+ String target = ref(sym);
+ page.printlnAhref(target, ROOT_FRAME, name);
+ }
+ else
+ page.println(name);
+ }
+
+ /**
+ * Adds to the current page an hyperlink leading to a given
+ * symbol.
+ */
+ protected void printSymbol(Symbol sym, boolean addLink) {
+ String name = sym.nameString();
+ if (global.debug) name = sym.name.toString();
+ if (isReferenced(sym))
+ if (addLink)
+ page.printAhref(ref(sym), ROOT_FRAME, name);
+ else {
+ page.printOTag("em");
+ page.print(name);
+ page.printCTag("em");
+ }
+ else
+ page.print(name);
+ }
+
+ /**
* Writes the string representation of a symbol entry in the index.
*
* @param symbol
@@ -1317,12 +1330,11 @@ public class HTMLGenerator {
String keyword = symtab.getSymbolKeyword(symbol);
if (keyword != null) page.print(keyword).space();
// name
- symtab.printDefinedSymbolName(symbol, Symbol.NONE, true);
+ symtab.printDefinedSymbolName(symbol, true);
// owner
if (!symbol.isRoot()) {
page.print(" in ");
- page.printAhref(ref(symbol.owner()), ROOT_FRAME_NAME, //true),
- ScalaSearch.getOwnersString(symbol.owner()));
+ printPath(symbol.owner());
}
}
@@ -1396,7 +1408,7 @@ public class HTMLGenerator {
}
else {
String labl = label.equals("") ? sym.nameString() : label;
- return ahref(ref(sym), ROOT_FRAME_NAME, labl);
+ return ahref(ref(sym), ROOT_FRAME, labl);
}
default:
throw Debug.abort("illegal case", tag);
diff --git a/sources/scala/tools/scaladoc/Location.java b/sources/scala/tools/scaladoc/Location.java
index 2304c3568f..327dd70422 100644
--- a/sources/scala/tools/scaladoc/Location.java
+++ b/sources/scala/tools/scaladoc/Location.java
@@ -22,6 +22,10 @@ import scalac.util.Debug;
*/
public class Location {
+ static public final String ROOT_NAME = "root-page";
+ static public final String HTML_SUFFIX = ".html";
+ static public final String CLASS_SUFFIX = "-class";
+
/////////////////// AS SEEN FROM //////////////////////
/**
@@ -32,7 +36,6 @@ public class Location {
* "A/B#R" as seen from "A" is "A/B#R"
*/
static public URI asSeenFrom(URI u, URI v) {
- assert u != null : "HOUSTON, we have ...";
File f_u = new File(u.getPath());
File f_v = new File(v.getPath());
try {
@@ -57,7 +60,7 @@ public class Location {
/////////////////// UNIQUE URL //////////////////////
- /** Returns the URL of a given symbol. */
+ /** Returns the URI of a given symbol. */
static private final Map/*<Symbol, URI>*/ uris = new HashMap();
static public URI getURI(Symbol sym) {
if (uris.get(sym) == null) {
@@ -66,11 +69,9 @@ public class Location {
if (sym.isModuleClass())
uri = getURI(sym.module());
else if (sym.isRoot() || sym.isClass() || sym.isModule() || sym.isPackage())
- uri = new URI(getPath(sym).toString() + ".html");
+ uri = new URI(getPath(sym).toString() + HTML_SUFFIX);
else if (sym.isParameter())
uri = getURI(sym.classOwner());
- // else if (sym.isConstructor())
- //uri = getURI(sym.owner());
else
uri = new URI(getURI(sym.owner()).toString() + "#" + nextFreeId(sym.owner()));
uris.put(sym, uri);
@@ -81,17 +82,19 @@ public class Location {
// where
static private URI getPath(Symbol sym) {
try {
- if (sym.isRoot())
- return new URI("root");
+ if (sym.isModuleClass())
+ return getPath(sym.module());
+ else if (sym.isRoot())
+ return new URI(ROOT_NAME);
else if (sym.owner().isRoot())
return new URI(getName(sym));
else
- return new URI(getPath(sym.owner()).toString() + "/" + getName(sym));
+ return new URI(getPath(sym.owner()).toString() + File.separator + getName(sym));
} catch(Exception e) { return null; }
}
// where
static public String getName(Symbol sym) {
- return sym.isClass() ? sym.nameString() + "-class" : sym.nameString();
+ return sym.isClass() ? sym.nameString() + CLASS_SUFFIX : sym.nameString();
}
// where
static private final Map/*<Symbol, Integer>*/ ids = new HashMap();
@@ -103,8 +106,4 @@ public class Location {
return i;
}
- /** Tests the function defined in this class. */
- public static void main(String[] args) {
- }
-
}
diff --git a/sources/scala/tools/scaladoc/ScalaSearch.java b/sources/scala/tools/scaladoc/ScalaSearch.java
index cac508002a..e753c0f2b5 100644
--- a/sources/scala/tools/scaladoc/ScalaSearch.java
+++ b/sources/scala/tools/scaladoc/ScalaSearch.java
@@ -414,7 +414,8 @@ public class ScalaSearch {
Symbol member = thistype.lookup(names[i]);
if (member != Symbol.NONE)
if (!member.isConstructor())
- members.add(member);
+ if (!isGenerated(member))
+ members.add(member);
}
List unloadedMembers = new LinkedList();
Iterator it = members.iterator();
diff --git a/sources/scala/tools/scaladoc/SymbolTablePrinter.java b/sources/scala/tools/scaladoc/SymbolTablePrinter.java
index 49a5112fc2..704a12e419 100644
--- a/sources/scala/tools/scaladoc/SymbolTablePrinter.java
+++ b/sources/scala/tools/scaladoc/SymbolTablePrinter.java
@@ -78,7 +78,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
if (first) print("{").indent(); else print(", ");
first = false;
line();
- printSignature(member, Symbol.NONE, false);
+ printSignature(member, false);
}
if (!first)
line().undent().print("}");
@@ -116,16 +116,9 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* Prints the name of the given symbol usage.
*
* @param symbol
- * @param user
*/
- public SymbolTablePrinter printUsedSymbolName(Symbol symbol, Symbol user) {
- Name name = symbol.name;
- if (!global.debug) name = NameTransformer.decode(name);
- String s = name.toString();
- if (htmlGenerator.isReferenced(symbol))
- htmlGenerator.page.printAhref(htmlGenerator.ref(symbol), s);
- else
- htmlGenerator.page.print(s);
+ public SymbolTablePrinter printUsedSymbolName(Symbol symbol) {
+ htmlGenerator.printSymbol(symbol, true);
printSymbolUniqueId(symbol);
return this;
}
@@ -134,20 +127,10 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* Prints the name of the given symbol definition.
*
* @param symbol
- * @param user
* @param addLink
*/
- public SymbolTablePrinter printDefinedSymbolName(Symbol symbol, Symbol user, boolean addLink) {
- Name name = symbol.name;
- if (!global.debug) name = NameTransformer.decode(name);
- String s = name.toString();
- if (htmlGenerator.isReferenced(symbol))
- if (addLink)
- htmlGenerator.page.printAhref(htmlGenerator.ref(symbol), s);
- else
- htmlGenerator.page.printBold(s);
- else
- htmlGenerator.page.print(s);
+ public SymbolTablePrinter printDefinedSymbolName(Symbol symbol, boolean addLink) {
+ htmlGenerator.printSymbol(symbol, addLink);
printSymbolUniqueId(symbol);
return this;
}
@@ -158,7 +141,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param symbol
* @param inner
*/
- public SymbolTablePrinter printSymbolType(Symbol symbol, String inner, Symbol user) {
+ public SymbolTablePrinter printSymbolType(Symbol symbol, String inner) {
Type type = symbol.rawFirstInfo();
if (!(type instanceof Type.LazyType)) type = symbol.info();
boolean star = false;
@@ -169,7 +152,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
type = type.typeArgs()[0];
star = true;
}
- printType(type, inner, user);
+ printType(type, inner);
if (star) print("*");
return this;
}
@@ -180,17 +163,13 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param symbol
* @param addLink
*/
- public SymbolTablePrinter printSignature(Symbol symbol, Symbol user, boolean addLink) {
+ public SymbolTablePrinter printSignature(Symbol symbol, boolean addLink) {
String keyword = getSymbolKeyword(symbol);
if (keyword != null) print(keyword).space();
String inner = getSymbolInnerString(symbol);
- String name = symbol.nameString();
- if (addLink)
- htmlGenerator.page.printAhref(htmlGenerator.ref(symbol), name);
- else
- htmlGenerator.page.print(name);
- return printType(symbol.loBound(), ">:", user)
- .printSymbolType(symbol, inner, user);
+ htmlGenerator.printSymbol(symbol, addLink);
+ return printType(symbol.loBound(), ">:")
+ .printSymbolType(symbol, inner);
}
/**
@@ -199,16 +178,11 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param symbol
* @param addLink
*/
- public SymbolTablePrinter printShortSignature(Symbol symbol, Symbol user, boolean addLink) {
+ public SymbolTablePrinter printShortSignature(Symbol symbol, boolean addLink) {
String keyword = getSymbolKeyword(symbol);
if (keyword != null) print(keyword).space();
- String inner = getSymbolInnerString(symbol);
- String name = symbol.nameString();
- if (addLink)
- htmlGenerator.page.printAhref(htmlGenerator.ref(symbol), name);
- else
- htmlGenerator.page.print(name);
- return printType(symbol.loBound(), ">:", user);
+ htmlGenerator.printSymbol(symbol, addLink);
+ return printType(symbol.loBound(), ">:");
}
/**
@@ -218,14 +192,14 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param addLink
* @return the current symbol table printer
*/
- public SymbolTablePrinter printTemplateSignature(Symbol symbol, Symbol user, boolean addLink) {
+ public SymbolTablePrinter printTemplateSignature(Symbol symbol, boolean addLink) {
// kind
String keyword = getSymbolKeyword(symbol);
if (keyword != null) print(keyword).space();
String inner = getSymbolInnerString(symbol);
// name
- printDefinedSymbolName(symbol, user, addLink);
+ printDefinedSymbolName(symbol, addLink);
if (symbol.isClass()) {
// type parameters
Symbol[] tparams = symbol.typeParams();
@@ -233,7 +207,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
print('[');
for (int i = 0; i < tparams.length; i++) {
if (i > 0) print(",");
- printSignature(tparams[i], user, false);
+ printSignature(tparams[i], false);
}
print(']');
}
@@ -243,7 +217,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
for (int i = 0; i < vparams.length; i++) {
if (i > 0) print(", "); // vincent
if (vparams[i].isDefParameter()) print("def ");
- htmlGenerator.defString(vparams[i], user, false);
+ htmlGenerator.defString(vparams[i], false);
}
print(')');
}
@@ -261,7 +235,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param symbol
* @param addLink
*/
- public SymbolTablePrinter printTemplateHtmlSignature(Symbol symbol, Symbol user, boolean addLink) {
+ public SymbolTablePrinter printTemplateHtmlSignature(Symbol symbol, boolean addLink) {
// modifiers
String mods = Modifiers.Helper.toString(symbol.flags);
htmlGenerator.page.printlnOTag("dl");
@@ -274,7 +248,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
String inner = getSymbolInnerString(symbol);
// name
- printDefinedSymbolName(symbol, user, addLink);
+ printDefinedSymbolName(symbol, addLink);
if (symbol.isClass()) {
// type parameters
Symbol[] tparams = symbol.typeParams();
@@ -282,7 +256,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
print('[');
for (int i = 0; i < tparams.length; i++) {
if (i > 0) print(",");
- printSignature(tparams[i], user, false);
+ printSignature(tparams[i], false);
}
print(']');
}
@@ -292,7 +266,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
for (int i = 0; i < vparams.length; i++) {
if (i > 0) print(", ");
if (vparams[i].isDefParameter()) print("def ");
- htmlGenerator.defString(vparams[i], user, false);
+ htmlGenerator.defString(vparams[i], false);
}
print(')');
}
@@ -303,7 +277,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
for (int i = 0; i < parts.length; i++) {
htmlGenerator.page.printOTag("dd");
print((i == 0) ? "extends " : "with ");
- printType(parts[i], symbol);
+ printType(parts[i]);
htmlGenerator.page.printlnCTag("dd");
}
htmlGenerator.page.printCTag("dl");
@@ -319,10 +293,10 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param types
* @param infix
*/
- public SymbolTablePrinter printTypes(Type[] types, String infix, Symbol user) {
+ public SymbolTablePrinter printTypes(Type[] types, String infix) {
for (int i = 0; i < types.length; i++) {
if (i > 0) print(infix);
- printType(types[i], user);
+ printType(types[i]);
}
return this;
}
@@ -331,20 +305,18 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* Prints the given type.
*
* @param type
- * @param user The symbol using the type <code>type</code>
*/
- public SymbolTablePrinter printType(Type type, Symbol user) {
- return printType0(getTypeToPrintForType(type), user);
+ public SymbolTablePrinter printType(Type type) {
+ return printType0(getTypeToPrintForType(type));
}
/**
* ..
*
* @param type
- * @param user
*/
- public SymbolTablePrinter printType0(Type type, Symbol user) {
- printCommonPart(type, user);
+ public SymbolTablePrinter printType0(Type type) {
+ printCommonPart(type);
switch (type) {
case ThisType(_):
case SingleType(_,_):
@@ -361,12 +333,12 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param type
* @param inner
*/
- public SymbolTablePrinter printType(Type type, String inner, Symbol user) {
+ public SymbolTablePrinter printType(Type type, String inner) {
if ("<:".equals(inner) && type.symbol() == global.definitions.ANY_CLASS ||
">:".equals(inner) && type.symbol() == global.definitions.ALL_CLASS)
return this;
else
- return printType0(getTypeToPrintForType(type), inner, user);
+ return printType0(getTypeToPrintForType(type), inner);
}
/**
@@ -375,35 +347,35 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param type
* @param inner
*/
- public SymbolTablePrinter printType0(Type type, String inner, Symbol user) {
+ public SymbolTablePrinter printType0(Type type, String inner) {
switch (type) {
case MethodType(Symbol[] vparams, Type result):
print('(');
for (int i = 0; i < vparams.length; i++) {
if (i > 0) print(", ");
if (vparams[i].isDefParameter()) print("def ");
- htmlGenerator.defString(vparams[i], user, false);
+ htmlGenerator.defString(vparams[i], false);
//print(NameTransformer.decode(vparams[i].name.toString()) + ": ");// vincent
//printSymbolType(vparams[i], null);
}
print(')');
- return printType(result, inner, user);
+ return printType(result, inner);
case PolyType(Symbol[] tparams, Type result):
if (tparams.length != 0 || global.debug) {
print('[');
for (int i = 0; i < tparams.length; i++) {
if (i > 0) print(",");
- printSignature(tparams[i], user, false);
+ printSignature(tparams[i], false);
}
print(']');
}
- return printType(result, inner, user);
+ return printType(result, inner);
default:
if (inner != null) {
if (!inner.startsWith(":")) space();
print(inner).space();
}
- return printType0(type, user);
+ return printType0(type);
}
}
@@ -416,9 +388,9 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
Type[] args = new Type[types.length - 1];
for (int i = 0; i < args.length; i++) args[i] = types[i];
print('(');
- printTypes(args, ", ", Symbol.NONE);
+ printTypes(args, ", ");
print(") => ");
- printType(types[types.length - 1], Symbol.NONE);
+ printType(types[types.length - 1]);
return this;
}
@@ -429,7 +401,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
*/
public SymbolTablePrinter printTemplateType(Type[] types) {
print("<template: ");
- printTypes(types, " with ", Symbol.NONE);
+ printTypes(types, " with ");
print(" {...}>");
return this;
}
@@ -438,9 +410,8 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* Prints the type and prefix common part of the given type.
*
* @param type
- * @param user The symbol using the type <code>type</code>
*/
- public SymbolTablePrinter printCommonPart(Type type, Symbol user) {
+ public SymbolTablePrinter printCommonPart(Type type) {
switch (type) {
case ErrorType:
print("<error>");
@@ -458,7 +429,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
if (sym == Symbol.NONE) print("<local>.this");
if ((sym.isAnonymousClass() || sym.isCompoundSym()) && !global.debug)
print("this");
- printUsedSymbolName(sym, user);
+ printUsedSymbolName(sym);
print(".this"); // vincent
return this;
@@ -472,42 +443,42 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
printTemplateType(pre.memberInfo(sym).parents());
}
printPrefix(pre, sym);
- printUsedSymbolName(sym, user);
+ printUsedSymbolName(sym);
if (args.length != 0) {
print('[');
- printTypes(args, ",", user);
+ printTypes(args, ",");
print(']');
}
return this;
case SingleType(Type pre, Symbol sym):
printPrefix(pre, sym);
- printUsedSymbolName(sym, user);
+ printUsedSymbolName(sym);
return this;
case ConstantType(Type base, Object value):
- printType(base, user);
+ printType(base);
print("(");
print(value.toString());
print(")");
return this;
case CompoundType(Type[] parts, Scope members):
- printTypes(parts," with ", user);
+ printTypes(parts," with ");
space();
return printScope(members, true); // vincent
case MethodType(_, _):
- return printType0(type, user);
+ return printType0(type);
case PolyType(_, _):
- return printType0(type, user);
+ return printType0(type);
case OverloadedType(Symbol[] alts, Type[] alttypes):
- return printTypes(alttypes, " <and> ", user);
+ return printTypes(alttypes, " <and> ");
case TypeVar(Type origin, Constraint constr):
- printType(origin, user);
+ printType(origin);
print("?");
return this;
@@ -516,7 +487,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
return this;
case UnboxedArrayType(Type elemtp):
- printType(elemtp, user);
+ printType(elemtp);
print("[]");
return this;
@@ -586,7 +557,7 @@ public class SymbolTablePrinter extends scalac.symtab.SymbolTablePrinter {
* @param prefix
*/
public SymbolTablePrinter printPrefix0(Type prefix) {
- printCommonPart(prefix, Symbol.NONE);
+ printCommonPart(prefix);
switch (prefix) {
case ThisType(_):
case SingleType(_,_):