8241470: HtmlStyle: group and document members: description, flex, signature

Reviewed-by: hannesw
This commit is contained in:
Jonathan Gibbons 2020-03-26 20:36:56 -07:00
parent 5f1636b2d5
commit 87805d9207
12 changed files with 167 additions and 61 deletions

View File

@ -686,7 +686,7 @@ public abstract class AbstractMemberWriter implements MemberSummaryWriter {
parameters.add(")");
htmltree.add(Entity.ZERO_WIDTH_SPACE);
htmltree.add("(");
htmltree.add(HtmlTree.SPAN(HtmlStyle.arguments, parameters));
htmltree.add(HtmlTree.SPAN(HtmlStyle.parameters, parameters));
}
// Exceptions

View File

@ -48,8 +48,6 @@ public enum HtmlStyle {
aboutLanguage,
activeTableTab,
altColor,
annotations,
arguments,
block,
blockList,
bottomNav,
@ -68,18 +66,13 @@ public enum HtmlStyle {
deprecatedSummary,
deprecationBlock,
deprecationComment,
description,
descfrmTypeLabel,
details,
detail,
emphasizedPhrase,
exceptions,
externalLink,
fieldDetails,
fieldSummary,
flexBox,
flexHeader,
flexContent,
header,
helpSection,
hierarchy,
@ -91,28 +84,21 @@ public enum HtmlStyle {
interfaceName,
legalCopy,
memberDetails,
memberName,
memberNameLabel,
memberNameLink,
memberSignature,
memberSummary,
methodDetails,
methodSummary,
modifiers,
moduleDescription,
moduleLabelInPackage,
moduleLabelInType,
moduleTags,
modulesSummary,
nameValue,
navBarCell1Rev,
navList,
navListSearch,
nestedClassSummary,
notes,
overviewSummary,
packages,
packageDescription,
packageHierarchyLabel,
packageLabelInType,
packagesSummary,
@ -121,7 +107,6 @@ public enum HtmlStyle {
propertySummary,
providesSummary,
requiresSummary,
returnType,
rowColor,
searchTagLink,
searchTagResult,
@ -142,13 +127,133 @@ public enum HtmlStyle {
topNav,
typeNameLabel,
typeNameLink,
typeParameters,
typeParametersLong,
typeSummary,
useSummary,
usesSummary,
verticalSeparator,
//<editor-fold desc="documentation comments">
// The following constants are used for the components used to present the content
// generated from documentation comments.
/**
* The class of the element used to present the documentation comment for a type or member
* element.
* The content of the block tags will be in a nested element with class {@link #notes}.
*/
description,
/**
* The class of the element used to present the documentation comment for a module element,
* excluding block tags.
* The content of the block tags will be in a sibling element with class {@link #moduleTags}.
*/
moduleDescription,
/**
* The class of the {@code dl} element used to present the block tags in the documentation
* comment for a module element.
* Additional (derived) information, such as implementation or inheritance details, may
* also appear in this element.
*/
moduleTags,
/**
* The class of the element used to present the documentation comment for package element.
* The content of the block tags will be in a nested element with class {@link #notes}.
*/
packageDescription,
/**
* The class of the {@code dl} element used to present the block tags in the documentation
* comment for a package, type or member element.
* Additional (derived) information, such as implementation or inheritance details, may
* also appear in this element.
*/
notes,
//</editor-fold>
//<editor-fold desc="flex layout">
// The following constants are used for the components of the top-level structures for "flex" layout.
/**
* The class of the top-level {@code div} element used to arrange for "flex" layout in
* a browser window. The element should contain two child elements: one with class
* {@link #flexHeader flex-header} and one with class {@link #flexContent flex-content}.
*/
flexBox,
/**
* The class of the {@code header} element within a {@link #flexBox flex-box} container.
* The element is always displayed at the top of the viewport.
*/
flexHeader,
/**
* The class of the {@code div} element within a {@link #flexBox flex-box} container
* This element appears below the header and can be scrolled if too big for the available height.
*/
flexContent,
//</editor-fold>
//<editor-fold desc="member signature">
// The following constants are used for the components of a signature of an element
/**
* The class of a {@code span} element for the signature of an element.
* The signature will contain a member name and, depending on the kind of element,
* it can contain any of the following:
* annotations, type parameters, modifiers, return type, parameters, and exceptions.
*/
memberSignature,
/**
* The class of a {@code span} element for any annotations in the signature of an element.
*/
annotations,
/**
* The class of a {@code span} element for any exceptions in a signature of an executable element.
*/
exceptions,
/**
* The class of a {@code span} for the member name in the signature of an element.
*/
memberName,
/**
* The class of a {@code span} for any modifiers in the signature of an element.
*/
modifiers,
/**
* The class of a {@code span} for any parameters in the signature of an executable element.
*/
parameters,
/**
* The class of a {@code span} for the return type in the signature of an method element.
*/
returnType,
/**
* The class of a {@code span} for type parameters in the signature of an element,
* used when the type parameters should reasonably be displayed inline.
*/
typeParameters,
/**
* The class of a {@code span} for type parameters in the signature of an element,
* used when the type parameters are too long to be displayed inline.
* @implNote
* The threshold for choosing between {@code typeParameters} and {@code typeParametersLong}
* is 50 characters.
*/
typeParametersLong,
//</editor-fold>
//<editor-fold desc="page styles for <body> elements">
// The following constants are used for the class of the {@code <body>} element
// for the corresponding pages.
@ -256,6 +361,7 @@ public enum HtmlStyle {
* The class of the {@code body} element for the page for the class hierarchy.
*/
treePage;
//</editor-fold>
private final String cssName;

View File

@ -531,7 +531,7 @@ div.member-signature span.annotations {
white-space: pre-wrap;
}
div.member-signature span.type-parameters-long,
div.member-signature span.arguments,
div.member-signature span.parameters,
div.member-signature span.exceptions {
display: inline-block;
vertical-align: top;

View File

@ -51,7 +51,7 @@ public class TestIndentation extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"type-parameters\">&lt;T&gt;</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">m</span>"
+ "&#8203;(<span class=\"arguments\">T&nbsp;t1,\n"
+ "&#8203;(<span class=\"parameters\">T&nbsp;t1,\n"
+ "T&nbsp;t2)</span>\n"
+ " throws <span class=\"exceptions\">java.lang.Exception</span></div>");

View File

@ -58,7 +58,7 @@ public class TestJavaFX extends JavadocTester {
+ "<a href=\"#setRate(double)\"><code>setRate(double)</code></a></dd>",
"<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">setRate</span>&#8203;"
+ "(<span class=\"arguments\">double&nbsp;value)</span></div>\n"
+ "(<span class=\"parameters\">double&nbsp;value)</span></div>\n"
+ "<div class=\"block\">Sets the value of the property rate.</div>\n"
+ "<dl class=\"notes\">\n"
+ "<dt>Property description:</dt>",
@ -103,7 +103,7 @@ public class TestJavaFX extends JavadocTester {
+ "<h3>setPaused</h3>\n"
+ "<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">setPaused</span>&#8203;"
+ "(<span class=\"arguments\">boolean&nbsp;value)</span></div>\n"
+ "(<span class=\"parameters\">boolean&nbsp;value)</span></div>\n"
+ "<div class=\"block\">Sets the value of the property paused.</div>\n"
+ "<dl class=\"notes\">\n"
+ "<dt>Property description:</dt>\n"
@ -132,7 +132,7 @@ public class TestJavaFX extends JavadocTester {
+ "<h3>setRate</h3>\n"
+ "<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">setRate</span>&#8203;"
+ "(<span class=\"arguments\">double&nbsp;value)</span></div>\n"
+ "(<span class=\"parameters\">double&nbsp;value)</span></div>\n"
+ "<div class=\"block\">Sets the value of the property rate.</div>\n"
+ "<dl class=\"notes\">\n"
+ "<dt>Property description:</dt>\n"

View File

@ -125,7 +125,7 @@ public class TestMemberInheritance extends JavadocTester {
+ "<div class=\"member-signature\"><span class=\"modifiers\">protected abstract</span>"
+ "&nbsp;<span class=\"return-type\">java.lang.String</span>&nbsp;"
+ "<span class=\"member-name\">parentMethod</span>&#8203;"
+ "(<span class=\"arguments\">java.lang.String&nbsp;t)</span>\n"
+ "(<span class=\"parameters\">java.lang.String&nbsp;t)</span>\n"
+ " "
+ "throws <span class=\"exceptions\">java.lang.IllegalArgumentException,\n"
+ "java.lang.InterruptedException,\n"
@ -158,7 +158,7 @@ public class TestMemberInheritance extends JavadocTester {
+ "<h3 id=\"method(java.lang.Object)\">method</h3>\n"
+ "<div class=\"member-signature\"><span class=\"modifiers\">public</span>"
+ "&nbsp;<span class=\"return-type\">java.lang.String</span>&nbsp;"
+ "<span class=\"member-name\">method</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">method</span>&#8203;(<span class=\"parameters\">"
+ "java.lang.String&nbsp;t)</span></div>\n"
+ "</section>");
}

View File

@ -23,7 +23,7 @@
/*
* @test
* @bug 8214126
* @bug 8214126 8241470
* @summary Method signatures not formatted correctly in browser
* @library ../../lib/
* @modules jdk.javadoc/jdk.javadoc.internal.tool
@ -55,7 +55,7 @@ public class TestMethodSignature extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public static</span>"
+ "&nbsp;<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">"
+ "simpleMethod</span>&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+ "simpleMethod</span>&#8203;(<span class=\"parameters\">int&nbsp;i,\n"
+ "java.lang.String&nbsp;s,\nboolean&nbsp;b)</span></div>",
"<div class=\"member-signature\"><span class=\"annotations\">@Generated"
@ -63,7 +63,7 @@ public class TestMethodSignature extends JavadocTester {
+ " comments=\"some comment about the method below\")\n"
+ "</span><span class=\"modifiers\">public static</span>&nbsp;<span "
+ "class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">annotatedMethod"
+ "</span>&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+ "</span>&#8203;(<span class=\"parameters\">int&nbsp;i,\n"
+ "java.lang.String&nbsp;s,\nboolean&nbsp;b)</span></div>",
"<div class=\"member-signature\"><span class=\"modifiers\">public static</span>"
@ -79,7 +79,7 @@ public class TestMethodSignature extends JavadocTester {
+ "title=\"class in pkg\">C.With8Types</a>&lt;T1,&#8203;T2,&#8203;T3,"
+ "&#8203;T4,&#8203;T5,&#8203;T6,&#8203;T7,&#8203;T8&gt;</span>&nbsp;"
+ "<span class=\"member-name\">bigGenericMethod</span>&#8203;("
+ "<span class=\"arguments\"><a href=\"C.F0.html\" "
+ "<span class=\"parameters\"><a href=\"C.F0.html\" "
+ "title=\"interface in pkg\">C.F0</a>&lt;? extends T1&gt;&nbsp;t1,\n"
+ "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+ "C.F0</a>&lt;? extends T2&gt;&nbsp;t2,\n"
@ -117,7 +117,7 @@ public class TestMethodSignature extends JavadocTester {
+ "title=\"class in pkg\">C.With8Types</a>&lt;T1,&#8203;T2,&#8203;T3,"
+ "&#8203;T4,&#8203;T5,&#8203;T6,&#8203;T7,&#8203;T8&gt;</span>&nbsp;"
+ "<span class=\"member-name\">bigGenericAnnotatedMethod</span>&#8203;("
+ "<span class=\"arguments\"><a href=\"C.F0.html\" "
+ "<span class=\"parameters\"><a href=\"C.F0.html\" "
+ "title=\"interface in pkg\">C.F0</a>&lt;? extends T1&gt;&nbsp;t1,\n"
+ "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+ "C.F0</a>&lt;? extends T2&gt;&nbsp;t2,\n"

View File

@ -83,7 +83,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public static</span>&nbsp;"
+ "<span class=\"return-type\"><a href=\"Coin.html\" title=\"enum in pkg\">Coin</a></span>&nbsp;"
+ "<span class=\"member-name\">valueOf</span>&#8203;("
+ "<span class=\"arguments\">java.lang.String&nbsp;name)</span></div>\n" +
+ "<span class=\"parameters\">java.lang.String&nbsp;name)</span></div>\n" +
"<div class=\"block\">Returns the enum constant of this type with the specified name.\n" +
"The string must match <i>exactly</i> an identifier used to declare an\n" +
"enum constant in this type. (Extraneous whitespace characters are \n" +
@ -135,7 +135,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"type-parameters\">&lt;T extends java.util.List,&#8203;\nV&gt;</span>\n"
+ "<span class=\"return-type\">java.lang.String[]</span>&nbsp;<span class=\"member-name\">"
+ "methodThatHasTypeParameters</span>&#8203;(<span class=\"arguments\">T&nbsp;param1,\n"
+ "methodThatHasTypeParameters</span>&#8203;(<span class=\"parameters\">T&nbsp;param1,\n"
+ "V&nbsp;param2)</span></div>",
// Method that returns TypeParameters
"<td class=\"col-first\"><code><a href=\"TypeParameters.html\" "
@ -147,7 +147,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;<span "
+ "class=\"return-type\"><a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">"
+ "E</a>[]</span>&nbsp;<span class=\"member-name\">methodThatReturnsTypeParameterA</span>&#8203;("
+ "<span class=\"arguments\"><a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">"
+ "<span class=\"parameters\"><a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">"
+ "E</a>[]&nbsp;e)</span></div>\n",
"<td class=\"col-first\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
+ "<br>T</code></td>\n"
@ -218,7 +218,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"type-parameters\">&lt;T extends java.lang.Number &amp; java.lang.Runnable&gt;</span>\n"
+ "<span class=\"return-type\">T</span>&nbsp;<span class=\"member-name\">foo</span>&#8203;"
+ "(<span class=\"arguments\">T&nbsp;t)</span></div>");
+ "(<span class=\"parameters\">T&nbsp;t)</span></div>");
//==============================================================
// Test Class-Use Documentation for Type Parameters.
@ -562,14 +562,14 @@ public class TestNewLanguageFeatures extends JavadocTester {
// METHOD PARAMS
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;<span "
+ "class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">methodWithParams</span>"
+ "&#8203;(<span class=\"arguments\"><a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+ "&#8203;(<span class=\"parameters\"><a href=\"AnnotationType.html\" title=\"annotation in pkg\">"
+ "@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">optional</a>"
+ "=\"Parameter Annotation\",<a href=\"AnnotationType.html#required()\">required</a>=1994)\n"
+ "int&nbsp;documented,\n"
+ "int&nbsp;undocmented)</span></div>",
// CONSTRUCTOR PARAMS
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"member-name\">AnnotationTypeUsage</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">AnnotationTypeUsage</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</a>("
+ "<a href=\"AnnotationType.html#optional()\">optional</a>=\"Constructor Param Annotation\","
+ "<a href=\"AnnotationType.html#required()\">required</a>=1994)\n"

View File

@ -71,7 +71,7 @@ public class TestPrivateClasses extends JavadocTester {
// Method is documented as though it is declared in the inheriting method.
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">"
+ "methodInheritedFromParent</span>&#8203;(<span class=\"arguments\">int&nbsp;p1)</span>\n"
+ "methodInheritedFromParent</span>&#8203;(<span class=\"parameters\">int&nbsp;p1)</span>\n"
+ " throws <span class=\"exceptions\">java.lang.Exception</span></div>",
"<dl class=\"notes\">\n"
+ "<dt>All Implemented Interfaces:</dt>\n"

View File

@ -436,7 +436,7 @@ public class TestRecordTypes extends JavadocTester {
+ "<span class=\"modifiers\">private final</span>&nbsp;<span class=\"return-type\">int</span>"
+ "&nbsp;<span class=\"member-name\">i</span></div>",
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;<span class=\"member-name\">R</span>"
+ "&#8203;(<span class=\"arguments\">"
+ "&#8203;(<span class=\"parameters\">"
+ pAnno
+ "int&nbsp;i)</span></div>",
"<div class=\"member-signature\">"

View File

@ -75,7 +75,7 @@ public class TestSerializedFormWithClassFile extends JavadocTester {
checkOutput("serialized-form.html", true,
"<div class=\"member-signature\"><span class=\"modifiers\">public</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">readObject</span>"
+ "&#8203;(<span class=\"arguments\">java.io.ObjectInputStream&nbsp;arg0)</span>\n"
+ "&#8203;(<span class=\"parameters\">java.io.ObjectInputStream&nbsp;arg0)</span>\n"
+ " throws <span class=\"exceptions\">java.lang.ClassNotFoundException,\n"
+ "java.io.IOException</span></div>\n");
}

View File

@ -219,13 +219,13 @@ public class TestTypeAnnotations extends JavadocTester {
// Test for type annotations on parameters (Parameters.java).
checkOutput("typeannos/Parameters.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">unannotated</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">unannotated</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"ParaParameterized.html\" title=\"class in typeannos\">ParaParameterized</a>"
+ "&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;a)</span></div>",
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">nestedParaParameterized</span>&#8203;"
+ "(<span class=\"arguments\"><a href=\"ParaParameterized.html\" "
+ "(<span class=\"parameters\"><a href=\"ParaParameterized.html\" "
+ "title=\"class in typeannos\">ParaParameterized</a>&lt;<a href=\"ParamA.html\" "
+ "title=\"annotation in typeannos\">@ParamA</a> <a href=\"ParaParameterized.html\" "
+ "title=\"class in typeannos\">ParaParameterized</a>&lt;<a href=\"ParamA.html\" "
@ -236,7 +236,7 @@ public class TestTypeAnnotations extends JavadocTester {
// When JDK-8068737 is fixed, we should change the order
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">array2Deep</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">array2Deep</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"ParamA.html\" title=\"annotation in typeannos\">@ParamA</a> "
+ "java.lang.String <a href=\"ParamB.html\" title=\"annotation in typeannos\">"
+ "@ParamB</a> [] <a href=\"ParamA.html\" title=\"annotation in typeannos\">"
@ -259,13 +259,13 @@ public class TestTypeAnnotations extends JavadocTester {
checkOutput("typeannos/ThrPublicModified.html", true,
"<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">"
+ "oneException</span>&#8203;(<span class=\"arguments\">java.lang.String&nbsp;a)</span>\n"
+ "oneException</span>&#8203;(<span class=\"parameters\">java.lang.String&nbsp;a)</span>\n"
+ " throws <span class=\"exceptions\"><a href=\"ThrA.html\" "
+ "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</span></div>",
"<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">"
+ "twoExceptions</span>&#8203;(<span class=\"arguments\">java.lang.String&nbsp;a)</span>\n"
+ "twoExceptions</span>&#8203;(<span class=\"parameters\">java.lang.String&nbsp;a)</span>\n"
+ " throws <span class=\"exceptions\"><a href=\"ThrA.html\" "
+ "title=\"annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
+ "<a href=\"ThrA.html\" title=\"annotation in typeannos\">@ThrA</a> "
@ -296,7 +296,7 @@ public class TestTypeAnnotations extends JavadocTester {
// Test for type annotations on wildcard type (Wildcards.java).
checkOutput("typeannos/BoundTest.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">wcExtends</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">wcExtends</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"MyList.html\" title=\"class in typeannos\">MyList</a>&lt;? extends "
+ "<a href=\"WldA.html\" title=\"annotation in typeannos\">@WldA</a> "
+ "java.lang.String&gt;&nbsp;l)</span></div>",
@ -308,7 +308,7 @@ public class TestTypeAnnotations extends JavadocTester {
checkOutput("typeannos/BoundWithValue.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">wcSuper</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">wcSuper</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"MyList.html\" title=\"class in typeannos\">MyList</a>&lt;? super "
+ "<a href=\"WldB.html\" title=\"annotation in typeannos\">@WldB</a>(\"m\") "
+ "java.lang.String&gt;&nbsp;l)</span></div>",
@ -321,20 +321,20 @@ public class TestTypeAnnotations extends JavadocTester {
// Test for receiver annotations (Receivers.java).
checkOutput("typeannos/DefaultUnmodified.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">withException</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">withException</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>"
+ "&nbsp;DefaultUnmodified&nbsp;this)</span>\n"
+ " throws <span class=\"exceptions\">java.lang.Exception</span></div>",
"<div class=\"member-signature\"><span class=\"return-type\">java.lang.String</span>&nbsp;"
+ "<span class=\"member-name\">nonVoid</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">nonVoid</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a> "
+ "<a href=\"RcvrB.html\" title=\"annotation in typeannos\">@RcvrB</a>(\"m\")"
+ "&nbsp;DefaultUnmodified&nbsp;this)</span></div>",
"<div class=\"member-signature\"><span class=\"type-parameters\">&lt;T extends "
+ "java.lang.Runnable&gt;</span>&nbsp;<span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">accept</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">accept</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>&nbsp;"
+ "DefaultUnmodified&nbsp;this,\nT&nbsp;r)</span>\n"
+ " throws <span class=\"exceptions\">"
@ -343,14 +343,14 @@ public class TestTypeAnnotations extends JavadocTester {
checkOutput("typeannos/PublicModified.html", true,
"<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"return-type\">java.lang.String</span>&nbsp;<span class=\"member-name\">"
+ "nonVoid</span>&#8203;(<span class=\"arguments\"><a href=\"RcvrA.html\" "
+ "nonVoid</span>&#8203;(<span class=\"parameters\"><a href=\"RcvrA.html\" "
+ "title=\"annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this)"
+ "</span></div>",
"<div class=\"member-signature\"><span class=\"modifiers\">public final</span>&nbsp;"
+ "<span class=\"type-parameters\">&lt;T extends java.lang.Runnable&gt;</span>&nbsp;"
+ "<span class=\"return-type\">void</span>&nbsp;<span class=\"member-name\">accept"
+ "</span>&#8203;(<span class=\"arguments\"><a href=\"RcvrA.html\" "
+ "</span>&#8203;(<span class=\"parameters\"><a href=\"RcvrA.html\" "
+ "title=\"annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this,\n"
+ "T&nbsp;r)</span>\n throws "
+ "<span class=\"exceptions\">java.lang.Exception</span></div>");
@ -358,7 +358,7 @@ public class TestTypeAnnotations extends JavadocTester {
checkOutput("typeannos/WithValue.html", true,
"<div class=\"member-signature\"><span class=\"type-parameters\">&lt;T extends "
+ "java.lang.Runnable&gt;</span>&nbsp;<span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">accept</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">accept</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrB.html\" title=\"annotation in typeannos\">@RcvrB</a>(\"m\")"
+ "&nbsp;WithValue&nbsp;this,\nT&nbsp;r)</span>\n"
+ " throws <span class=\"exceptions\">"
@ -366,20 +366,20 @@ public class TestTypeAnnotations extends JavadocTester {
checkOutput("typeannos/WithFinal.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">java.lang.String</span>"
+ "&nbsp;<span class=\"member-name\">nonVoid</span>&#8203;(<span class=\"arguments\">"
+ "&nbsp;<span class=\"member-name\">nonVoid</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrB.html\" title=\"annotation in typeannos\">@RcvrB</a>(\"m\") "
+ "<a href=\"WithFinal.html\" title=\"class in typeannos\">WithFinal</a>"
+ "&nbsp;afield)</span></div>");
checkOutput("typeannos/WithBody.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">field</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">field</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>"
+ "&nbsp;WithBody&nbsp;this)</span></div>");
checkOutput("typeannos/Generic2.html", true,
"<div class=\"member-signature\"><span class=\"return-type\">void</span>&nbsp;"
+ "<span class=\"member-name\">test2</span>&#8203;(<span class=\"arguments\">"
+ "<span class=\"member-name\">test2</span>&#8203;(<span class=\"parameters\">"
+ "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>"
+ "&nbsp;Generic2&lt;X&gt;&nbsp;this)</span></div>");
@ -434,7 +434,7 @@ public class TestTypeAnnotations extends JavadocTester {
+ "@RepConstructorB</a> <a href=\"RepConstructorB.html\" "
+ "title=\"annotation in typeannos\">@RepConstructorB</a>\n"
+ "</span><span class=\"member-name\">RepeatingOnConstructor</span>"
+ "&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+ "&#8203;(<span class=\"parameters\">int&nbsp;i,\n"
+ "int&nbsp;j)</span></div>",
"<div class=\"member-signature\"><span class=\"annotations\">"
@ -445,11 +445,11 @@ public class TestTypeAnnotations extends JavadocTester {
+ "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
+ "title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
+ "</span><span class=\"member-name\">RepeatingOnConstructor</span>"
+ "&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+ "&#8203;(<span class=\"parameters\">int&nbsp;i,\n"
+ "int&nbsp;j,\nint&nbsp;k)</span></div>",
"<div class=\"member-signature\"><span class=\"member-name\">RepeatingOnConstructor</span>"
+ "&#8203;(<span class=\"arguments\"><a href=\"RepParameterA.html\" "
+ "&#8203;(<span class=\"parameters\"><a href=\"RepParameterA.html\" "
+ "title=\"annotation in typeannos\">@RepParameterA</a> "
+ "<a href=\"RepParameterA.html\" title=\"annotation in typeannos\">@RepParameterA</a> "
+ "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a> "
@ -474,7 +474,7 @@ public class TestTypeAnnotations extends JavadocTester {
+ "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+ "@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
+ "@RepTypeUseB</a> ...&nbsp;vararg)</code>",
"Inner</span>&#8203;(<span class=\"arguments\"><a href=\"RepTypeUseA.html\" "
"Inner</span>&#8203;(<span class=\"parameters\"><a href=\"RepTypeUseA.html\" "
+ "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" "
+ "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" "
+ "title=\"annotation in typeannos\">@RepTypeUseB</a> <a href=\"RepTypeUseB.html\" "
@ -673,7 +673,7 @@ public class TestTypeAnnotations extends JavadocTester {
+ "<span class=\"member-name\">test4</span>()",
"java.lang.String</span>&nbsp;<span class=\"member-name\">test5</span>&#8203;("
+ "<span class=\"arguments\"><a href=\"RepTypeUseA.html\" "
+ "<span class=\"parameters\"><a href=\"RepTypeUseA.html\" "
+ "title=\"annotation in typeannos\">@RepTypeUseA</a> "
+ "<a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">@RepTypeUseA</a> "
+ "<a href=\"RepTypeUseB.html\" title=\"annotation in typeannos\">@RepTypeUseB</a> "
@ -715,7 +715,7 @@ public class TestTypeAnnotations extends JavadocTester {
"<span class=\"return-type\">java.lang.String</span>&nbsp;"
+ "<span class=\"member-name\">test</span>"
+ "&#8203;(<span class=\"arguments\"><a href=\"RepTypeUseA.html\" "
+ "&#8203;(<span class=\"parameters\"><a href=\"RepTypeUseA.html\" "
+ "title=\"annotation in typeannos\">@RepTypeUseA</a> <a href="
+ "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+ "@RepTypeUseA</a> <a href=\"RepTypeUseB.html\" title="