8214126: Method signatures not formatted correctly in browser
authorhannesw
Tue, 04 Jun 2019 16:33:37 +0200
changeset 55197 0ca8e495bbba
parent 55196 7586561128e3
child 55198 30fe07cac527
child 55199 3a09397c147e
8214126: Method signatures not formatted correctly in browser Reviewed-by: jjg
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/RawHtml.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkInfo.java
test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java
test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java
test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java
test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java
test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java
test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java
test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java
test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java
test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java
test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java
test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java
test/langtools/jdk/javadoc/doclet/testMethodSignature/TestMethodSignature.java
test/langtools/jdk/javadoc/doclet/testMethodSignature/pkg/C.java
test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java
test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java
test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java
test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenDeprecatedMethods.java
test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java
test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java
test/langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java
test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java
test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java
test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java
test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
test/langtools/jdk/javadoc/doclet/testVisibleMembers/TestVisibleMembers.java
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java	Tue Jun 04 16:33:37 2019 +0200
@@ -73,19 +73,6 @@
         super(writer);
     }
 
-    /**
-     * Add the type parameters for the executable member.
-     *
-     * @param member the member to write type parameters for.
-     * @param htmltree the content tree to which the parameters will be added.
-     */
-    protected void addTypeParameters(ExecutableElement member, Content htmltree) {
-        Content typeParameters = getTypeParameters(member);
-        if (!typeParameters.isEmpty()) {
-            htmltree.add(typeParameters);
-            htmltree.add(Entity.NO_BREAK_SPACE);
-        }
-    }
 
     /**
      * Get the type parameters for the executable member.
@@ -134,7 +121,7 @@
                 writer.getDocLink(context, te, ee,
                 name(ee), false));
         Content code = HtmlTree.CODE(memberLink);
-        addParameters(ee, false, code, name(ee).length() - 1);
+        addParameters(ee, code);
         tdSummary.add(code);
     }
 
@@ -174,7 +161,7 @@
      *
      * @param member the member to write receiver annotations for.
      * @param rcvrType the receiver type.
-     * @param descList list of annotation description.
+     * @param annotationMirrors list of annotation descriptions.
      * @param tree the content tree to which the information will be added.
      */
     protected void addReceiverAnnotations(ExecutableElement member, TypeMirror rcvrType,
@@ -195,8 +182,16 @@
      * @param member the member to write parameters for.
      * @param htmltree the content tree to which the parameters information will be added.
      */
-    protected void addParameters(ExecutableElement member, Content htmltree, int indentSize) {
-        addParameters(member, true, htmltree, indentSize);
+    protected void addParameters(ExecutableElement member, Content htmltree) {
+        Content paramTree = getParameters(member, false);
+        if (paramTree.isEmpty()) {
+            htmltree.add("()");
+        } else {
+            htmltree.add(Entity.ZERO_WIDTH_SPACE);
+            htmltree.add("(");
+            htmltree.add(paramTree);
+            paramTree.add(")");
+        }
     }
 
     /**
@@ -204,19 +199,17 @@
      *
      * @param member the member to write parameters for.
      * @param includeAnnotations true if annotation information needs to be added.
-     * @param htmltree the content tree to which the parameters information will be added.
+     * @return the content tree containing the parameter information
      */
-    protected void addParameters(ExecutableElement member,
-            boolean includeAnnotations, Content htmltree, int indentSize) {
+    protected Content getParameters(ExecutableElement member, boolean includeAnnotations) {
         Content paramTree = new ContentBuilder();
         String sep = "";
         List<? extends VariableElement> parameters = member.getParameters();
-        CharSequence indent = makeSpace(indentSize + 1);
         TypeMirror rcvrType = member.getReceiverType();
         if (includeAnnotations && rcvrType != null && utils.isAnnotated(rcvrType)) {
             List<? extends AnnotationMirror> annotationMirrors = rcvrType.getAnnotationMirrors();
             addReceiverAnnotations(member, rcvrType, annotationMirrors, paramTree);
-            sep = "," + DocletConstants.NL + indent;
+            sep = "," + DocletConstants.NL;
         }
         int paramstart;
         for (paramstart = 0; paramstart < parameters.size(); paramstart++) {
@@ -226,11 +219,9 @@
             if (param.getKind() != ElementKind.INSTANCE_INIT) {
                 if (includeAnnotations) {
                     boolean foundAnnotations =
-                            writer.addAnnotationInfo(indent.length(),
-                            member, param, paramTree);
+                            writer.addAnnotationInfo(param, paramTree);
                     if (foundAnnotations) {
                         paramTree.add(DocletConstants.NL);
-                        paramTree.add(indent);
                     }
                 }
                 addParam(member, param,
@@ -242,54 +233,42 @@
         for (int i = paramstart + 1; i < parameters.size(); i++) {
             paramTree.add(",");
             paramTree.add(DocletConstants.NL);
-            paramTree.add(indent);
             if (includeAnnotations) {
                 boolean foundAnnotations =
-                        writer.addAnnotationInfo(indent.length(), member, parameters.get(i),
+                        writer.addAnnotationInfo(parameters.get(i),
                         paramTree);
                 if (foundAnnotations) {
                     paramTree.add(DocletConstants.NL);
-                    paramTree.add(indent);
                 }
             }
             addParam(member, parameters.get(i), (i == parameters.size() - 1) && member.isVarArgs(),
                     paramTree);
         }
-        if (paramTree.isEmpty()) {
-            htmltree.add("()");
-        } else {
-            htmltree.add(Entity.ZERO_WIDTH_SPACE);
-            htmltree.add("(");
-            htmltree.add(paramTree);
-            paramTree.add(")");
-        }
+
+        return paramTree;
     }
 
     /**
-     * Add exceptions for the executable member.
+     * Get a content tree containing the exception information for the executable member.
      *
      * @param member the member to write exceptions for.
-     * @param htmltree the content tree to which the exceptions information will be added.
+     * @return the content tree containing the exceptions information.
      */
-    protected void addExceptions(ExecutableElement member, Content htmltree, int indentSize) {
+    protected Content getExceptions(ExecutableElement member) {
         List<? extends TypeMirror> exceptions = member.getThrownTypes();
+        Content htmltree = new ContentBuilder();
         if (!exceptions.isEmpty()) {
-            CharSequence indent = makeSpace(indentSize + 1 - 7);
-            htmltree.add(DocletConstants.NL);
-            htmltree.add(indent);
-            htmltree.add("throws ");
-            indent = makeSpace(indentSize + 1);
             Content link = writer.getLink(new LinkInfoImpl(configuration, MEMBER, exceptions.get(0)));
             htmltree.add(link);
             for(int i = 1; i < exceptions.size(); i++) {
                 htmltree.add(",");
                 htmltree.add(DocletConstants.NL);
-                htmltree.add(indent);
                 Content exceptionLink = writer.getLink(new LinkInfoImpl(configuration, MEMBER,
                         exceptions.get(i)));
                 htmltree.add(exceptionLink);
             }
         }
+        return htmltree;
     }
 
     protected TypeElement implementsMethodInIntfac(ExecutableElement method,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Tue Jun 04 16:33:37 2019 +0200
@@ -46,12 +46,14 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.Links;
+import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.MemberSummaryWriter;
 import jdk.javadoc.internal.doclets.toolkit.Resources;
 import jdk.javadoc.internal.doclets.toolkit.taglets.DeprecatedTaglet;
+import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
 import jdk.javadoc.internal.doclets.toolkit.util.Utils;
 
 import static javax.lang.model.element.Modifier.ABSTRACT;
@@ -219,55 +221,6 @@
      */
     protected abstract Content getDeprecatedLink(Element member);
 
-    /**
-     * Add the member name to the content tree.
-     *
-     * @param name the member name to be added to the content tree.
-     * @param htmltree the content tree to which the name will be added.
-     */
-    protected void addName(String name, Content htmltree) {
-        htmltree.add(name);
-    }
-
-    /**
-     * Add the modifier for the member. The modifiers are ordered as specified
-     * by <em>The Java Language Specification</em>.
-     *
-     * @param member the member for which the modifier will be added.
-     * @param htmltree the content tree to which the modifier information will be added.
-     */
-    protected void addModifiers(Element member, Content htmltree) {
-        Set<Modifier> set = new TreeSet<>(member.getModifiers());
-
-        // remove the ones we really don't need
-        set.remove(NATIVE);
-        set.remove(SYNCHRONIZED);
-        set.remove(STRICTFP);
-
-        // According to JLS, we should not be showing public modifier for
-        // interface methods.
-        if ((utils.isField(member) || utils.isMethod(member))
-            && ((writer instanceof ClassWriterImpl
-                 && utils.isInterface(((ClassWriterImpl) writer).getTypeElement())  ||
-                 writer instanceof AnnotationTypeWriterImpl) )) {
-            // Remove the implicit abstract and public modifiers
-            if (utils.isMethod(member) &&
-                (utils.isInterface(member.getEnclosingElement()) ||
-                 utils.isAnnotationType(member.getEnclosingElement()))) {
-                set.remove(ABSTRACT);
-                set.remove(PUBLIC);
-            }
-            if (!utils.isMethod(member)) {
-                set.remove(PUBLIC);
-            }
-        }
-        if (!set.isEmpty()) {
-            String mods = set.stream().map(Modifier::toString).collect(Collectors.joining(" "));
-            htmltree.add(mods);
-            htmltree.add(Entity.NO_BREAK_SPACE);
-        }
-    }
-
     protected CharSequence makeSpace(int len) {
         if (len <= 0) {
             return "";
@@ -563,4 +516,237 @@
         else
             return HtmlTree.LI(HtmlStyle.blockList, memberTree);
     }
+
+    /**
+     * A content builder for member signatures.
+     */
+    class MemberSignature {
+
+        private Element element;
+        private Content typeParameters;
+        private Content returnType;
+        private Content parameters;
+        private Content exceptions;
+
+        // Threshold for length of type parameters before switching from inline to block representation.
+        private final static int TYPE_PARAMS_MAX_INLINE_LENGTH = 50;
+
+        // Threshold for combined length of modifiers, type params and return type before breaking
+        // it up with a line break before the return type.
+        private final static int RETURN_TYPE_MAX_LINE_LENGTH = 50;
+
+        /**
+         * Create a new member signature builder.
+         *
+         * @param element The element for which to create a signature.
+         */
+        MemberSignature(Element element) {
+            this.element = element;
+        }
+
+        /**
+         * Add the type parameters for an executable member.
+         *
+         * @param typeParameters the content tree containing the type parameters to add.
+         * @return this MemberSignature instance
+         */
+        MemberSignature addTypeParameters(Content typeParameters) {
+            this.typeParameters = typeParameters;
+            return this;
+        }
+
+        /**
+         * Add the return type for an executable member.
+         *
+         * @param returnType the content tree containing the return type to add.
+         * @return this MemberSignature instance
+         */
+        MemberSignature addReturnType(Content returnType) {
+            this.returnType = returnType;
+            return this;
+        }
+
+        /**
+         * Add the type information for a non-executable member.
+         *
+         * @param type the type of the member.
+         * @return this MemberSignature instance
+         */
+        MemberSignature addType(TypeMirror type) {
+            this.returnType = writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.MEMBER, type));
+            return this;
+        }
+
+        /**
+         * Add the parameter information of an executable member.
+         *
+         * @param paramTree the content tree containing the parameter information.
+         * @return this MemberSignature instance
+         */
+        MemberSignature addParameters(Content paramTree) {
+            this.parameters = paramTree;
+            return this;
+        }
+
+        /**
+         * Add the exception information of an executable member.
+         *
+         * @param exceptionTree the content tree containing the exception information
+         * @return this MemberSignature instance
+         */
+        MemberSignature addExceptions(Content exceptionTree) {
+            this.exceptions = exceptionTree;
+            return this;
+        }
+
+        /**
+         * Return a HTML tree containing the member signature.
+         *
+         * @return a HTML tree containing the member signature
+         */
+        Content toContent() {
+            Content content = new ContentBuilder();
+            // Position of last line separator.
+            int lastLineSeparator = 0;
+
+            // Annotations
+            Content annotationInfo = writer.getAnnotationInfo(element.getAnnotationMirrors(), true);
+            if (!annotationInfo.isEmpty()) {
+                content.add(HtmlTree.SPAN(HtmlStyle.annotations, annotationInfo));
+                lastLineSeparator = content.charCount();
+            }
+
+            // Modifiers
+            appendModifiers(content);
+
+            // Type parameters
+            if (typeParameters != null && !typeParameters.isEmpty()) {
+                lastLineSeparator = appendTypeParameters(content, lastLineSeparator);
+            }
+
+            // Return type
+            if (returnType != null) {
+                content.add(HtmlTree.SPAN(HtmlStyle.returnType, returnType));
+                content.add(Entity.NO_BREAK_SPACE);
+            }
+
+            // Name
+            HtmlTree nameSpan = new HtmlTree(HtmlTag.SPAN);
+            nameSpan.setStyle(HtmlStyle.memberName);
+            if (configuration.linksource) {
+                Content name = new StringContent(name(element));
+                writer.addSrcLink(element, name, nameSpan);
+            } else {
+                nameSpan.add(name(element));
+            }
+            content.add(nameSpan);
+
+
+            // Parameters and exceptions
+            if (parameters != null) {
+                appendParametersAndExceptions(content, lastLineSeparator);
+            }
+
+            return HtmlTree.DIV(HtmlStyle.memberSignature, content);
+        }
+
+        /**
+         * Add the modifier for the member. The modifiers are ordered as specified
+         * by <em>The Java Language Specification</em>.
+         *
+         * @param htmltree the content tree to which the modifier information will be added.
+         */
+        private void appendModifiers(Content htmltree) {
+            Set<Modifier> set = new TreeSet<>(element.getModifiers());
+
+            // remove the ones we really don't need
+            set.remove(NATIVE);
+            set.remove(SYNCHRONIZED);
+            set.remove(STRICTFP);
+
+            // According to JLS, we should not be showing public modifier for
+            // interface methods.
+            if ((utils.isField(element) || utils.isMethod(element))
+                    && ((writer instanceof ClassWriterImpl
+                    && utils.isInterface(((ClassWriterImpl) writer).getTypeElement())  ||
+                    writer instanceof AnnotationTypeWriterImpl) )) {
+                // Remove the implicit abstract and public modifiers
+                if (utils.isMethod(element) &&
+                        (utils.isInterface(element.getEnclosingElement()) ||
+                                utils.isAnnotationType(element.getEnclosingElement()))) {
+                    set.remove(ABSTRACT);
+                    set.remove(PUBLIC);
+                }
+                if (!utils.isMethod(element)) {
+                    set.remove(PUBLIC);
+                }
+            }
+            if (!set.isEmpty()) {
+                String mods = set.stream().map(Modifier::toString).collect(Collectors.joining(" "));
+                htmltree.add(HtmlTree.SPAN(HtmlStyle.modifiers, new StringContent(mods)));
+                htmltree.add(Entity.NO_BREAK_SPACE);
+            }
+        }
+
+        /**
+         * Append the type parameter information to the HTML tree.
+         *
+         * @param htmltree the HTML tree
+         * @param lastLineSeparator index of last line separator in HTML tree
+         * @return the new index of the last line separator
+         */
+        private int appendTypeParameters(Content htmltree, int lastLineSeparator) {
+            // Apply different wrapping strategies for type parameters
+            // depending of combined length of type parameters and return type.
+            int typeParamLength = typeParameters.charCount();
+
+            if (typeParamLength >= TYPE_PARAMS_MAX_INLINE_LENGTH) {
+                htmltree.add(HtmlTree.SPAN(HtmlStyle.typeParametersLong, typeParameters));
+            } else {
+                htmltree.add(HtmlTree.SPAN(HtmlStyle.typeParameters, typeParameters));
+            }
+
+            int lineLength = htmltree.charCount() - lastLineSeparator;
+            int newLastLineSeparator = lastLineSeparator;
+
+            // sum below includes length of modifiers plus type params added above
+            if (lineLength + returnType.charCount()> RETURN_TYPE_MAX_LINE_LENGTH) {
+                htmltree.add(DocletConstants.NL);
+                newLastLineSeparator = htmltree.charCount();
+            } else {
+                htmltree.add(Entity.NO_BREAK_SPACE);
+            }
+
+            return newLastLineSeparator;
+        }
+
+        /**
+         * Append the parameters and exceptions information to the HTML tree.
+         *
+         * @param htmltree the HTML tree
+         * @param lastLineSeparator the index of the last line separator in HTML tree
+         */
+        private void appendParametersAndExceptions(Content htmltree, int lastLineSeparator) {
+            // Record current position for indentation of exceptions
+            int indentSize = htmltree.charCount() - lastLineSeparator;
+
+            if (parameters.isEmpty()) {
+                htmltree.add("()");
+            } else {
+                parameters.add(")");
+                htmltree.add(Entity.ZERO_WIDTH_SPACE);
+                htmltree.add("(");
+                htmltree.add(HtmlTree.SPAN(HtmlStyle.arguments, parameters));
+            }
+
+            // Exceptions
+            if (exceptions != null && !exceptions.isEmpty()) {
+                CharSequence indent = makeSpace(indentSize + 1 - 7);
+                htmltree.add(DocletConstants.NL);
+                htmltree.add(indent);
+                htmltree.add("throws ");
+                htmltree.add(HtmlTree.SPAN(HtmlStyle.exceptions, exceptions));
+            }
+        }
+    }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -33,7 +33,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
@@ -132,21 +131,9 @@
      * {@inheritDoc}
      */
     public Content getSignature(Element member) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(member, pre);
-        addModifiers(member, pre);
-        Content link =
-                writer.getLink(new LinkInfoImpl(configuration,
-                        LinkInfoImpl.Kind.MEMBER, getType(member)));
-        pre.add(link);
-        pre.add(Entity.NO_BREAK_SPACE);
-        if (configuration.linksource) {
-            Content memberName = new StringContent(name(member));
-            writer.addSrcLink(member, memberName, pre);
-        } else {
-            addName(name(member), pre);
-        }
-        return pre;
+        return new MemberSignature(member)
+                .addType(getType(member))
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -31,11 +31,8 @@
 import javax.lang.model.type.TypeMirror;
 
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
-import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeRequiredMemberWriter;
@@ -136,21 +133,9 @@
      * {@inheritDoc}
      */
     public Content getSignature(Element member) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(member, pre);
-        addModifiers(member, pre);
-        Content link =
-                writer.getLink(new LinkInfoImpl(configuration,
-                        LinkInfoImpl.Kind.MEMBER, getType(member)));
-        pre.add(link);
-        pre.add(Entity.NO_BREAK_SPACE);
-        if (configuration.linksource) {
-            Content memberName = new StringContent(name(member));
-            writer.addSrcLink(member, memberName, pre);
-        } else {
-            addName(name(member), pre);
-        }
-        return pre;
+        return new MemberSignature(member)
+                .addType(getType(member))
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -37,7 +37,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
 import jdk.javadoc.internal.doclets.toolkit.ConstructorWriter;
@@ -152,20 +151,10 @@
      */
     @Override
     public Content getSignature(ExecutableElement constructor) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(constructor, pre);
-        int annotationLength = pre.charCount();
-        addModifiers(constructor, pre);
-        if (configuration.linksource) {
-            Content constructorName = new StringContent(name(constructor));
-            writer.addSrcLink(constructor, constructorName, pre);
-        } else {
-            addName(name(constructor), pre);
-        }
-        int indent = pre.charCount() - annotationLength;
-        addParameters(constructor, pre, indent);
-        addExceptions(constructor, pre, indent);
-        return pre;
+        return new MemberSignature(constructor)
+                .addParameters(getParameters(constructor, true))
+                .addExceptions(getExceptions(constructor))
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -32,9 +32,7 @@
 
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
 import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader;
 import jdk.javadoc.internal.doclets.toolkit.Content;
@@ -118,20 +116,9 @@
      */
     @Override
     public Content getSignature(VariableElement enumConstant) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(enumConstant, pre);
-        addModifiers(enumConstant, pre);
-        Content enumConstantLink = writer.getLink(new LinkInfoImpl(
-                configuration, LinkInfoImpl.Kind.MEMBER, enumConstant.asType()));
-        pre.add(enumConstantLink);
-        pre.add(" ");
-        if (configuration.linksource) {
-            Content enumConstantName = new StringContent(name(enumConstant));
-            writer.addSrcLink(enumConstant, enumConstantName, pre);
-        } else {
-            addName(name(enumConstant), pre);
-        }
-        return pre;
+        return new MemberSignature(enumConstant)
+                .addType(enumConstant.asType())
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -35,7 +35,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
@@ -121,20 +120,9 @@
      */
     @Override
     public Content getSignature(VariableElement field) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(field, pre);
-        addModifiers(field, pre);
-        Content fieldlink = writer.getLink(new LinkInfoImpl(
-                configuration, LinkInfoImpl.Kind.MEMBER, field.asType()));
-        pre.add(fieldlink);
-        pre.add(" ");
-        if (configuration.linksource) {
-            Content fieldName = new StringContent(name(field));
-            writer.addSrcLink(field, fieldName, pre);
-        } else {
-            addName(name(field), pre);
-        }
-        return pre;
+        return new MemberSignature(field)
+                .addType(field.asType())
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Tue Jun 04 16:33:37 2019 +0200
@@ -1715,20 +1715,7 @@
      *        added
      */
     public void addAnnotationInfo(PackageElement packageElement, Content htmltree) {
-        addAnnotationInfo(packageElement, packageElement.getAnnotationMirrors(), htmltree);
-    }
-
-    /**
-     * Add the annotation types of the executable receiver.
-     *
-     * @param method the executable to write the receiver annotations for.
-     * @param descList a list of annotation mirrors.
-     * @param htmltree the documentation tree to which the annotation info will be
-     *        added
-     */
-    public void addReceiverAnnotationInfo(ExecutableElement method, List<AnnotationMirror> descList,
-            Content htmltree) {
-        addAnnotationInfo(0, method, descList, false, htmltree);
+        addAnnotationInfo(packageElement.getAnnotationMirrors(), htmltree);
     }
 
     /*
@@ -1739,7 +1726,7 @@
             List<? extends AnnotationMirror> annotationMirrors, Content htmltree) {
         TypeMirror rcvrType = method.getReceiverType();
         List<? extends AnnotationMirror> annotationMirrors1 = rcvrType.getAnnotationMirrors();
-        addAnnotationInfo(0, method, annotationMirrors1, false, htmltree);
+        htmltree.add(getAnnotationInfo(annotationMirrors1, false));
     }
 
     /**
@@ -1749,97 +1736,65 @@
      * @param htmltree the content tree to which the annotation types will be added
      */
     public void addAnnotationInfo(Element element, Content htmltree) {
-        addAnnotationInfo(element, element.getAnnotationMirrors(), htmltree);
+        addAnnotationInfo(element.getAnnotationMirrors(), htmltree);
     }
 
     /**
      * Add the annotatation types for the given element and parameter.
      *
-     * @param indent the number of spaces to indent the parameters.
-     * @param element the element to write annotations for.
      * @param param the parameter to write annotations for.
      * @param tree the content tree to which the annotation types will be added
      */
-    public boolean addAnnotationInfo(int indent, Element element, VariableElement param,
-            Content tree) {
-        return addAnnotationInfo(indent, element, param.getAnnotationMirrors(), false, tree);
+    public boolean addAnnotationInfo(VariableElement param, Content tree) {
+        Content annotaionInfo = getAnnotationInfo(param.getAnnotationMirrors(), false);
+        if (annotaionInfo.isEmpty()) {
+            return false;
+        }
+        tree.add(annotaionInfo);
+        return true;
     }
 
     /**
      * Adds the annotatation types for the given Element.
      *
-     * @param element the element to write annotations for.
-     * @param descList a list of annotation mirrors.
-     * @param htmltree the documentation tree to which the annotation info will be
-     *        added
-     */
-    private void addAnnotationInfo(Element element, List<? extends AnnotationMirror> descList,
-            Content htmltree) {
-        addAnnotationInfo(0, element, descList, true, htmltree);
-    }
-
-    /**
-     * Adds the annotation types for the given element.
-     *
-     * @param indent the number of extra spaces to indent the annotations.
-     * @param element the element to write annotations for.
      * @param descList a list of annotation mirrors.
      * @param htmltree the documentation tree to which the annotation info will be
      *        added
      */
-    private boolean addAnnotationInfo(int indent, Element element,
-            List<? extends AnnotationMirror> descList, boolean lineBreak, Content htmltree) {
-        List<Content> annotations = getAnnotations(indent, descList, lineBreak);
+    private void addAnnotationInfo(List<? extends AnnotationMirror> descList, Content htmltree) {
+        htmltree.add(getAnnotationInfo(descList, true));
+    }
+
+    /**
+     * Return a content tree containing the annotation types for the given element.
+     *
+     * @param descList a list of annotation mirrors.
+     * @return the documentation tree containing the annotation info.
+     */
+    Content getAnnotationInfo(List<? extends AnnotationMirror> descList, boolean lineBreak) {
+        List<Content> annotations = getAnnotations(descList, lineBreak);
         String sep = "";
-        if (annotations.isEmpty()) {
-            return false;
-        }
+        ContentBuilder builder = new ContentBuilder();
         for (Content annotation: annotations) {
-            htmltree.add(sep);
-            htmltree.add(annotation);
+            builder.add(sep);
+            builder.add(annotation);
             if (!lineBreak) {
                 sep = " ";
             }
         }
-        return true;
-    }
-
-   /**
-     * Return the string representations of the annotation types for
-     * the given doc.
-     *
-     * @param indent the number of extra spaces to indent the annotations.
-     * @param descList a list of annotation mirrors.
-     * @param linkBreak if true, add new line between each member value.
-     * @return a list of strings representing the annotations being
-     *         documented.
-     */
-    private List<Content> getAnnotations(int indent, List<? extends AnnotationMirror> descList, boolean linkBreak) {
-        return getAnnotations(indent, descList, linkBreak, true);
-    }
-
-    private List<Content> getAnnotations(int indent, AnnotationMirror amirror, boolean linkBreak) {
-        List<AnnotationMirror> descList = new ArrayList<>();
-        descList.add(amirror);
-        return getAnnotations(indent, descList, linkBreak, true);
+        return builder;
     }
 
     /**
      * Return the string representations of the annotation types for
      * the given doc.
      *
-     * A {@code null} {@code elementType} indicates that all the
-     * annotations should be returned without any filtering.
-     *
-     * @param indent the number of extra spaces to indent the annotations.
      * @param descList a list of annotation mirrors.
      * @param linkBreak if true, add new line between each member value.
-     * @param isJava5DeclarationLocation
      * @return a list of strings representing the annotations being
      *         documented.
      */
-    public List<Content> getAnnotations(int indent, List<? extends AnnotationMirror> descList,
-            boolean linkBreak, boolean isJava5DeclarationLocation) {
+    public List<Content> getAnnotations(List<? extends AnnotationMirror> descList, boolean linkBreak) {
         List<Content> results = new ArrayList<>();
         ContentBuilder annotation;
         for (AnnotationMirror aDesc : descList) {
@@ -1853,11 +1808,6 @@
                 (!isAnnotationDocumented && !isContainerDocumented)) {
                 continue;
             }
-            /* TODO: check logic here to correctly handle declaration
-             * and type annotations.
-            if  (utils.isDeclarationAnnotation(annotationElement, isJava5DeclarationLocation)) {
-                continue;
-            }*/
             annotation = new ContentBuilder();
             isAnnotationDocumented = false;
             LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
@@ -1900,9 +1850,7 @@
                         new SimpleAnnotationValueVisitor9<Void, List<AnnotationValue>>() {
                             @Override
                             public Void visitArray(List<? extends AnnotationValue> vals, List<AnnotationValue> annotationTypeValues) {
-                               for (AnnotationValue av : vals) {
-                                   annotationTypeValues.add(av);
-                               }
+                               annotationTypeValues.addAll(vals);
                                return null;
                             }
                         }.visit(a, annotationTypeValues);
@@ -1917,13 +1865,11 @@
                 // If the container has 1 or more value defined and if the
                 // repeatable type annotation is not documented, print the container.
                 else {
-                    addAnnotations(annotationElement, linkInfo, annotation, pairs,
-                                   indent, false);
+                    addAnnotations(annotationElement, linkInfo, annotation, pairs, false);
                 }
             }
             else {
-                addAnnotations(annotationElement, linkInfo, annotation, pairs,
-                               indent, linkBreak);
+                addAnnotations(annotationElement, linkInfo, annotation, pairs, linkBreak);
             }
             annotation.add(linkBreak ? DocletConstants.NL : "");
             results.add(annotation);
@@ -1938,13 +1884,12 @@
      * @param linkInfo the information about the link
      * @param annotation the annotation string to which the annotation will be added
      * @param map annotation type element to annotation value pairs
-     * @param indent the number of extra spaces to indent the annotations.
      * @param linkBreak if true, add new line between each member value
      */
     private void addAnnotations(TypeElement annotationDoc, LinkInfoImpl linkInfo,
                                 ContentBuilder annotation,
                                 Map<? extends ExecutableElement, ? extends AnnotationValue> map,
-                                int indent, boolean linkBreak) {
+                                boolean linkBreak) {
         linkInfo.label = new StringContent("@");
         linkInfo.label.add(annotationDoc.getSimpleName());
         annotation.add(getLink(linkInfo));
@@ -1961,7 +1906,7 @@
                     if (linkBreak) {
                         annotation.add(DocletConstants.NL);
                         int spaces = annotationDoc.getSimpleName().length() + 2;
-                        for (int k = 0; k < (spaces + indent); k++) {
+                        for (int k = 0; k < (spaces); k++) {
                             annotation.add(" ");
                         }
                     }
@@ -2074,7 +2019,7 @@
             }
             @Override
             public Content visitAnnotation(AnnotationMirror a, Void p) {
-                List<Content> list = getAnnotations(0, a, false);
+                List<Content> list = getAnnotations(List.of(a), false);
                 ContentBuilder buf = new ContentBuilder();
                 for (Content c : list) {
                     buf.add(c);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -41,6 +41,7 @@
 import jdk.javadoc.internal.doclets.toolkit.Resources;
 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
+import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
 import jdk.javadoc.internal.doclets.toolkit.util.links.LinkFactory;
 import jdk.javadoc.internal.doclets.toolkit.util.links.LinkInfo;
 
@@ -134,7 +135,7 @@
      * {@inheritDoc}
      */
     @Override
-    protected Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel){
+    protected Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel) {
         Content links = newContent();
         List<TypeMirror> vars = new ArrayList<>();
         TypeMirror ctype = linkInfo.type != null
@@ -164,6 +165,9 @@
                 if (many) {
                     links.add(",");
                     links.add(Entity.ZERO_WIDTH_SPACE);
+                    if (((LinkInfoImpl) linkInfo).getContext() == LinkInfoImpl.Kind.MEMBER_TYPE_PARAMS) {
+                        links.add(DocletConstants.NL);
+                    }
                 }
                 links.add(getTypeParameterLink(linkInfo, t));
                 many = true;
@@ -186,7 +190,6 @@
         typeLinkInfo.excludeTypeBounds = linkInfo.excludeTypeBounds;
         typeLinkInfo.excludeTypeParameterLinks = linkInfo.excludeTypeParameterLinks;
         typeLinkInfo.linkToSelf = linkInfo.linkToSelf;
-        typeLinkInfo.isJava5DeclarationLocation = false;
         return getLink(typeLinkInfo);
     }
 
@@ -218,7 +221,7 @@
         if (annotations.isEmpty())
             return links;
 
-        List<Content> annos = m_writer.getAnnotations(0, annotations, false, linkInfo.isJava5DeclarationLocation);
+        List<Content> annos = m_writer.getAnnotations(annotations, false);
 
         boolean isFirst = true;
         for (Content anno : annos) {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -36,7 +36,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
@@ -140,23 +139,12 @@
      */
     @Override
     public Content getSignature(ExecutableElement method) {
-        HtmlTree pre = new HtmlTree(HtmlTag.PRE);
-        pre.setStyle(HtmlStyle.methodSignature);
-        writer.addAnnotationInfo(method, pre);
-        int annotationLength = pre.charCount();
-        addModifiers(method, pre);
-        addTypeParameters(method, pre);
-        addReturnType(method, pre);
-        if (configuration.linksource) {
-            Content methodName = new StringContent(name(method));
-            writer.addSrcLink(method, methodName, pre);
-        } else {
-            addName(name(method), pre);
-        }
-        int indent = pre.charCount() - annotationLength;
-        addParameters(method, pre, indent);
-        addExceptions(method, pre, indent);
-        return pre;
+        return new MemberSignature(method)
+                .addTypeParameters(getTypeParameters(method))
+                .addReturnType(getReturnType(method))
+                .addParameters(getParameters(method, true))
+                .addExceptions(getExceptions(method))
+                .toContent();
     }
 
     /**
@@ -399,19 +387,17 @@
     }
 
     /**
-     * Add the return type.
+     * Get the return type for the given method.
      *
      * @param method the method being documented.
-     * @param htmltree the content tree to which the return type will be added
+     * @return content containing the return type
      */
-    protected void addReturnType(ExecutableElement method, Content htmltree) {
+    protected Content getReturnType(ExecutableElement method) {
         TypeMirror type = utils.getReturnType(method);
         if (type != null) {
-            Content linkContent = writer.getLink(
-                    new LinkInfoImpl(configuration, LinkInfoImpl.Kind.RETURN_TYPE, type));
-            htmltree.add(linkContent);
-            htmltree.add(Entity.NO_BREAK_SPACE);
+            return writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.RETURN_TYPE, type));
         }
+        return new ContentBuilder();
     }
 
     @Override
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Tue Jun 04 16:33:37 2019 +0200
@@ -32,7 +32,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.formats.html.markup.Table;
@@ -114,21 +113,9 @@
      */
     @Override
     public Content getSignature(ExecutableElement property) {
-        Content pre = new HtmlTree(HtmlTag.PRE);
-        writer.addAnnotationInfo(property, pre);
-        addModifiers(property, pre);
-        Content propertylink = writer.getLink(new LinkInfoImpl(
-                configuration, LinkInfoImpl.Kind.MEMBER,
-                utils.getReturnType(property)));
-        pre.add(propertylink);
-        pre.add(" ");
-        if (configuration.linksource) {
-            Content propertyName = new StringContent(name(property));
-            writer.addSrcLink(property, propertyName, pre);
-        } else {
-            addName(name(property), pre);
-        }
-        return pre;
+        return new MemberSignature(property)
+                .addType(utils.getReturnType(property))
+                .toContent();
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java	Tue Jun 04 16:33:37 2019 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,8 @@
     allClassesContainer,
     allPackagesContainer,
     altColor,
+    annotations,
+    arguments,
     bar,
     block,
     blockList,
@@ -70,6 +72,7 @@
     detail,
     docSummary,
     emphasizedPhrase,
+    exceptions,
     externalLink,
     fieldDetails,
     fieldSummary,
@@ -91,12 +94,15 @@
     legalCopy,
     mainContainer,
     memberDetails,
+    memberName,
     memberNameLabel,
     memberNameLink,
+    memberSignature,
     memberSummary,
     methodDetails,
     methodSignature,
     methodSummary,
+    modifiers,
     moduleDescription,
     moduleLabelInPackage,
     moduleLabelInType,
@@ -122,6 +128,7 @@
     providesSummary,
     requiresSummary,
     returnLabel,
+    returnType,
     rightContainer,
     rightIframe,
     rowColor,
@@ -147,6 +154,8 @@
     topNav,
     typeNameLabel,
     typeNameLink,
+    typeParameters,
+    typeParametersLong,
     typeSummary,
     useSummary,
     usesSummary
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/RawHtml.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/RawHtml.java	Tue Jun 04 16:33:37 2019 +0200
@@ -112,6 +112,11 @@
                             state = State.ENTITY;
                             count++;
                             break;
+                        case '\r':
+                        case '\n':
+                            // Windows uses "\r\n" as line separator while UNIX uses "\n".
+                            // Ignore line separators to get consistent results across platforms.
+                            break;
                         default:
                             count++;
                     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Tue Jun 04 16:33:37 2019 +0200
@@ -1,4 +1,4 @@
-/* 
+/*
  * Javadoc style sheet
  */
 
@@ -165,7 +165,7 @@
     height:2.8em;
     padding-top:10px;
     overflow:hidden;
-    font-size:12px; 
+    font-size:12px;
 }
 .bottomNav {
     margin-top:10px;
@@ -533,9 +533,9 @@
 th.colFirst a:link, th.colFirst a:visited,
 th.colSecond a:link, th.colSecond a:visited,
 th.colConstructorName a:link, th.colConstructorName a:visited,
-th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, 
-.constantValuesContainer td a:link, .constantValuesContainer td a:visited, 
-.allClassesContainer td a:link, .allClassesContainer td a:visited, 
+th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited,
+.constantValuesContainer td a:link, .constantValuesContainer td a:visited,
+.allClassesContainer td a:link, .allClassesContainer td a:visited,
 .allPackagesContainer td a:link, .allPackagesContainer td a:visited {
     font-weight:bold;
 }
@@ -571,6 +571,26 @@
 td.colLast a {
     padding-bottom:3px;
 }
+div.memberSignature {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    margin-top:6px;
+    margin-bottom:14px;
+    white-space: pre-wrap;
+}
+div.memberSignature span.annotations {
+    white-space: pre-wrap;
+}
+div.memberSignature span.typeParametersLong,
+div.memberSignature span.arguments,
+div.memberSignature span.exceptions {
+    display: inline-block;
+    vertical-align: top;
+    white-space: pre;
+}
+div.memberSignature span.typeParameters {
+    white-space: normal;
+}
 /*
  * Styles for formatting effect.
  */
@@ -616,12 +636,12 @@
  * Styles for IFRAME.
  */
 .mainContainer {
-    margin:0 auto; 
-    padding:0; 
-    height:100%; 
-    width:100%; 
-    position:fixed; 
-    top:0; 
+    margin:0 auto;
+    padding:0;
+    height:100%;
+    width:100%;
+    position:fixed;
+    top:0;
     left:0;
 }
 .leftContainer {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkInfo.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkInfo.java	Tue Jun 04 16:33:37 2019 +0200
@@ -72,12 +72,6 @@
     public boolean isTypeBound = false;
 
     /**
-     * Whether the document element is in a Java 5 declaration
-     * location or not.
-     */
-    public boolean isJava5DeclarationLocation = true;
-
-    /**
      * The label for the link.
      */
     public Content label;
@@ -161,7 +155,6 @@
                 ", type=" + type +
                 ", isVarArg=" + isVarArg +
                 ", isTypeBound=" + isTypeBound +
-                ", isJava5DeclarationLocation=" + isJava5DeclarationLocation +
                 ", label=" + label +
                 ", isStrong=" + isStrong +
                 ", includeTypeInClassLinkLabel=" + includeTypeInClassLinkLabel +
--- a/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java	Tue Jun 04 16:33:37 2019 +0200
@@ -65,8 +65,9 @@
                 + "<a id=\"DEFAULT_NAME\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>static final&nbsp;java."
-                + "lang.String&nbsp;DEFAULT_NAME</pre>");
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                + "<span class=\"returnType\">java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">DEFAULT_NAME</span></div>\n");
 
         checkOutput("pkg/AnnotationType.html", true,
                 "<li>Summary:&nbsp;</li>\n"
@@ -90,7 +91,8 @@
                     "<a id=\"value()\">",
                     "<!--   -->",
                     "</a>",
-                    "<pre>int&nbsp;value</pre>");
+                    "<div class=\"memberSignature\"><span class=\"returnType\">int</span>"
+                    + "&nbsp;<span class=\"memberName\">value</span></div>");
 
         checkOutput("pkg/AnnotationType.html", false,
                 "<HR>\n\n"
--- a/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testDeprecatedDocs/TestDeprecatedDocs.java	Tue Jun 04 16:33:37 2019 +0200
@@ -82,14 +82,16 @@
                 "<pre>@Deprecated\n"
                 + "public class <span class=\"typeNameLabel\">DeprecatedClassByAnnotation</span>\n"
                 + "extends java.lang.Object</pre>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "public&nbsp;int field</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"returnType\">int</span>"
+                + "&nbsp;<span class=\"memberName\">field</span></div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span></div>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "public&nbsp;DeprecatedClassByAnnotation()</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"memberName\">DeprecatedClassByAnnotation</span>()</div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span></div>",
-                "<pre class=\"methodSignature\">@Deprecated\n"
-                + "public&nbsp;void&nbsp;method()</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"returnType\">"
+                + "void</span>&nbsp;<span class=\"memberName\">method</span>()</div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span></div>");
 
         checkOutput("pkg/TestAnnotationType.html", true,
@@ -100,18 +102,19 @@
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">annotation_test1 passes.</div>\n"
                 + "</div>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "static final&nbsp;int&nbsp;field</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n" +
+                        "</span><span class=\"modifiers\">static final</span>&nbsp;<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">field</span></div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This "
                 + "API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">annotation_test4 passes.</div>\n"
                 + "</div>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "int&nbsp;required</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n"
+                + "</span><span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">required</span></div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">annotation_test3 passes.</div>\n"
                 + "</div>",
-                "<pre>java.lang.String&nbsp;optional</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String</span>"
+                + "&nbsp;<span class=\"memberName\">optional</span></div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span>\n"
                 + "<div class=\"deprecationComment\">annotation_test2 passes.</div>\n"
                 + "</div>");
@@ -124,8 +127,8 @@
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">class_test1 passes.</div>\n"
                 + "</div>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "public&nbsp;TestClass()</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"memberName\">TestClass</span>()</div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">class_test3 passes. This is the second sentence of deprecated description for a constructor.</div>\n"
                 + "</div>",
@@ -164,8 +167,9 @@
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">enum_test1 passes.</div>\n"
                 + "</div>",
-                "<pre>@Deprecated(forRemoval=true)\n"
-                + "public static final&nbsp;<a href=\"TestEnum.html\" title=\"enum in pkg\">TestEnum</a> FOR_REMOVAL</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Deprecated(forRemoval=true)\n"
+                + "</span><span class=\"modifiers\">public static final</span>&nbsp;<span class=\"returnType\">"
+                + "<a href=\"TestEnum.html\" title=\"enum in pkg\">TestEnum</a></span>&nbsp;<span class=\"memberName\">FOR_REMOVAL</span></div>\n"
                 + "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated, for removal: This API element is subject to removal in a future version.</span>\n"
                 + "<div class=\"deprecationComment\">enum_test3 passes.</div>\n"
                 + "</div>");
--- a/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Tue Jun 04 16:33:37 2019 +0200
@@ -373,21 +373,22 @@
         // Test with -nocomment and -nodeprecated options. The ClassDocs whould
         // not display definition lists for any member details.
         checkOutput("pkg1/C1.html", expectFound,
-                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;readObject()\n" +
-                "                throws java.io.IOException</pre>\n" +
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;" +
+                "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">readObject</span>()\n" +
+                "                throws <span class=\"exceptions\">java.io.IOException</span></div>\n" +
                 "</section>\n" +
                 "</li>");
 
         checkOutput("pkg1/C2.html", expectFound,
-                "<pre>public&nbsp;C2()</pre>\n" +
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>" +
+                "&nbsp;<span class=\"memberName\">C2</span>()</div>\n" +
                 "</section>\n" +
                 "</li>");
 
         checkOutput("pkg1/C1.ModalExclusionType.html", expectFound,
-                "<pre>public " +
-                "static final&nbsp;<a href=\"C1.ModalExclusionType.html\" " +
-                "title=\"enum in pkg1\">C1.ModalExclusionType</a> " +
-                "APPLICATION_EXCLUDE</pre>\n" +
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static final</span>&nbsp;" +
+                "<span class=\"returnType\"><a href=\"C1.ModalExclusionType.html\" title=\"enum in pkg1\">" +
+                "C1.ModalExclusionType</a></span>&nbsp;<span class=\"memberName\">APPLICATION_EXCLUDE</span></div>\n" +
                 "</section>\n" +
                 "</li>");
 
--- a/test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testIndentation/TestIndentation.java	Tue Jun 04 16:33:37 2019 +0200
@@ -48,11 +48,12 @@
         checkExit(Exit.OK);
 
         checkOutput("p/Indent.html", true,
-                "<pre class=\"methodSignature\">public&nbsp;&lt;T&gt;&nbsp;void&nbsp;m&#8203;(T&nbsp;t1,",
-                "\n"
-                + "                  T&nbsp;t2)",
-                "\n"
-                + "           throws java.lang.Exception");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"typeParameters\">&lt;T&gt;</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">m</span>"
+                + "&#8203;(<span class=\"arguments\">T&nbsp;t1,\n"
+                + "T&nbsp;t2)</span>\n"
+                + "           throws <span class=\"exceptions\">java.lang.Exception</span></div>");
 
         // Test indentation of annotations and annotated method arguments
         checkOutput("p/IndentAnnot.html", false,
--- a/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testInterface/TestInterface.java	Tue Jun 04 16:33:37 2019 +0200
@@ -67,8 +67,10 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/Interface.html", true,
-                "<pre class=\"methodSignature\">int&nbsp;method()</pre>",
-                "<pre>static final&nbsp;int field</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">int</span>&nbsp;"
+                + "<span class=\"memberName\">method</span>()</div>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">field</span></div>",
                 // Make sure known implementing class list is correct and omits type parameters.
                 "<dl>\n"
                 + "<dt>All Known Implementing Classes:</dt>\n"
@@ -126,7 +128,8 @@
                 + "<a id=\"f\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public static&nbsp;int f</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public static</span>&nbsp;"
+                + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">f</span></div>\n"
                 + "<div class=\"block\">A hider field</div>",
 
                 "<td class=\"colFirst\"><code>static void</code></td>\n"
@@ -140,7 +143,8 @@
                 + "<a id=\"staticMethod()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public static&nbsp;void&nbsp;staticMethod()</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public static</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">staticMethod</span>()</div>\n"
                 + "<div class=\"block\"><span class=\"descfrmTypeLabel\">"
                 + "Description copied from interface:&nbsp;<code>"
                 + "<a href=\"InterfaceWithStaticMembers.html#staticMethod()\">"
--- a/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testJavaFX/TestJavaFX.java	Tue Jun 04 16:33:37 2019 +0200
@@ -57,11 +57,14 @@
                 "<dt><span class=\"seeLabel\">See Also:</span></dt>\n"
                 + "<dd><a href=\"#getRate()\"><code>getRate()</code></a>, \n"
                 + "<a href=\"#setRate(double)\"><code>setRate(double)</code></a></dd>",
-                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">setRate</span>&#8203;"
+                + "(<span class=\"arguments\">double&nbsp;value)</span></div>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>",
-                "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;getRate()</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">double</span>&nbsp;<span class=\"memberName\">getRate</span>()</div>\n"
                 + "<div class=\"block\">Gets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>",
@@ -90,20 +93,24 @@
                 + "<a id=\"pausedProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public final&nbsp;<a href=\"C.BooleanProperty.html\" "
-                + "title=\"class in pkg1\">C.BooleanProperty</a> pausedProperty</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"C.BooleanProperty.html\" title=\"class in pkg1\">"
+                + "C.BooleanProperty</a></span>&nbsp;<span class=\"memberName\">pausedProperty</span></div>\n"
                 + "<div class=\"block\">Defines if paused. The second line.</div>",
                 "<h3>isPaused</h3>\n"
                 + "<a id=\"isPaused()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;isPaused()</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">double</span>&nbsp;<span class=\"memberName\">isPaused</span>()</div>\n"
                 + "<div class=\"block\">Gets the value of the property paused.</div>",
                 "<h3>setPaused</h3>\n"
                 + "<a id=\"setPaused(boolean)\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setPaused&#8203;(boolean&nbsp;value)</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">setPaused</span>&#8203;"
+                + "(<span class=\"arguments\">boolean&nbsp;value)</span></div>\n"
                 + "<div class=\"block\">Sets the value of the property paused.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -114,7 +121,8 @@
                 + "<a id=\"isPaused()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;isPaused()</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">double</span>&nbsp;<span class=\"memberName\">isPaused</span>()</div>\n"
                 + "<div class=\"block\">Gets the value of the property paused.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -125,8 +133,9 @@
                 + "<a id=\"rateProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public final&nbsp;<a href=\"C.DoubleProperty.html\" "
-                + "title=\"class in pkg1\">C.DoubleProperty</a> rateProperty</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"C.DoubleProperty.html\" title=\"class in pkg1\">"
+                + "C.DoubleProperty</a></span>&nbsp;<span class=\"memberName\">rateProperty</span></div>\n"
                 + "<div class=\"block\">Defines the direction/speed at which the "
                 + "<code>Timeline</code> is expected to\n"
                 + " be played. This is the second line.</div>",
@@ -134,7 +143,9 @@
                 + "<a id=\"setRate(double)\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;setRate&#8203;(double&nbsp;value)</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">setRate</span>&#8203;"
+                + "(<span class=\"arguments\">double&nbsp;value)</span></div>\n"
                 + "<div class=\"block\">Sets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -148,7 +159,8 @@
                 + "<a id=\"getRate()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public final&nbsp;double&nbsp;getRate()</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">double</span>&nbsp;<span class=\"memberName\">getRate</span>()</div>\n"
                 + "<div class=\"block\">Gets the value of the property rate.</div>\n"
                 + "<dl>\n"
                 + "<dt><span class=\"simpleTagLabel\">Property description:</span></dt>\n"
@@ -224,7 +236,9 @@
                 + "<a id=\"betaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public&nbsp;java.lang.Object betaProperty</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">java.lang.Object</span>"
+                + "&nbsp;<span class=\"memberName\">betaProperty</span></div>\n"
                 + "</section>\n"
                 + "</li>\n"
                 + "<li class=\"blockList\">\n"
@@ -233,7 +247,9 @@
                 + "<a id=\"gammaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public final&nbsp;java.util.List&lt;java.lang.String&gt; gammaProperty</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">java.util.List&lt;java.lang.String&gt;</span>"
+                + "&nbsp;<span class=\"memberName\">gammaProperty</span></div>\n"
                 + "</section>\n"
                 + "</li>\n"
                 + "<li class=\"blockListLast\">\n"
@@ -242,8 +258,9 @@
                 + "<a id=\"deltaProperty\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>public final&nbsp;java.util.List&lt;"
-                + "java.util.Set&lt;? super java.lang.Object&gt;&gt; deltaProperty</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">java.util.List&lt;java.util.Set&lt;? super java.lang.Object&gt;&gt;"
+                + "</span>&nbsp;<span class=\"memberName\">deltaProperty</span></div>\n"
                 + "</section>\n"
                 + "</li>\n"
                 + "</ul>\n"
--- a/test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testLambdaFeature/TestLambdaFeature.java	Tue Jun 04 16:33:37 2019 +0200
@@ -57,7 +57,8 @@
 
         checkOutput("pkg/A.html", true,
                 "<td class=\"colFirst\"><code>default void</code></td>",
-                "<pre class=\"methodSignature\">default&nbsp;void&nbsp;defaultMethod()</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">default</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">defaultMethod</span>()</div>\n",
                 "<div role=\"tablist\" aria-orientation=\"horizontal\"><button role=\"tab\""
                 + " aria-selected=\"true\" aria-controls=\"memberSummary_tabpanel\" tabindex=\"0\""
                 + " onkeydown=\"switchTab(event)\" id=\"t0\" class=\"activeTableTab\">All Methods"
--- a/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOption.java	Tue Jun 04 16:33:37 2019 +0200
@@ -74,13 +74,13 @@
         checkOutput("pkg/C.html", true,
                 "<a href=\"" + url + "java/lang/String.html?is-external=true\" "
                 + "title=\"class or interface in java.lang\" class=\"externalLink\"><code>Link to String Class</code></a>",
-                //Make sure the parameters are indented properly when the -link option is used.
+                //Make sure the parameters are formatted properly when the -link option is used.
                 "(int&nbsp;p1,\n"
-                + "      int&nbsp;p2,\n"
-                + "      int&nbsp;p3)",
+                + "int&nbsp;p2,\n"
+                + "int&nbsp;p3)",
                 "(int&nbsp;p1,\n"
-                + "      int&nbsp;p2,\n"
-                + "      <a href=\"" + url + "java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\" class=\"externalLink\">"
+                + "int&nbsp;p2,\n"
+                + "<a href=\"" + url + "java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\" class=\"externalLink\">"
                 + "Object</a>&nbsp;p3)");
 
         checkOutput("pkg/B.html", true,
--- a/test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testLiteralCodeInPre/TestLiteralCodeInPre.java	Tue Jun 04 16:33:37 2019 +0200
@@ -49,19 +49,19 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/Test.html", true,
-                "no_pre()</pre>\n"
+                "no_pre</span>()</div>\n"
                 + "<div class=\"block\">abc<code>def</code>ghi</div>",
-                "no_pre_extra_whitespace()</pre>\n"
+                "no_pre_extra_whitespace</span>()</div>\n"
                 + "<div class=\"block\">abc<code> def  </code>ghi</div>",
-                "in_pre()</pre>\n"
+                "in_pre</span>()</div>\n"
                 + "<div class=\"block\"><pre> abc<code> def  </code>ghi</pre></div>",
-                "pre_after_text()</pre>\n"
+                "pre_after_text</span>()</div>\n"
                 + "<div class=\"block\">xyz <pre> abc<code> def  </code>ghi</pre></div>",
-                "after_pre()</pre>\n"
+                "after_pre</span>()</div>\n"
                 + "<div class=\"block\">xyz <pre> pqr </pre> abc<code> def  </code>ghi</div>",
-                "back_in_pre()</pre>\n"
+                "back_in_pre</span>()</div>\n"
                 + "<div class=\"block\">xyz <pre> pqr </pre> mno <pre> abc<code> def  </code>ghi</pre></div>",
-                "typical_usage_code()</pre>\n"
+                "typical_usage_code</span>()</div>\n"
                 + "<div class=\"block\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
                 + " Example:  <pre><code>\n"
                 + "   line 0 @Override\n"
@@ -70,7 +70,7 @@
                 + "   line 3 }\n"
                 + " </code></pre>\n"
                 + " and so it goes.</div>",
-                "typical_usage_literal()</pre>\n"
+                "typical_usage_literal</span>()</div>\n"
                 + "<div class=\"block\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
                 + " Example:  <pre>\n"
                 + "   line 0 @Override\n"
@@ -79,7 +79,7 @@
                 + "   line 3 }\n"
                 + " </pre>\n"
                 + " and so it goes.</div>",
-                "recommended_usage_literal()</pre>\n"
+                "recommended_usage_literal</span>()</div>\n"
                 + "<div class=\"block\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
                 + " Example:  <pre>\n"
                 + "   line 0 @Override\n"
@@ -91,7 +91,8 @@
                 + " <PRE>\n"
                 + " <b>id           </b>\n"
                 + " </PRE></div>",
-                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;htmlAttrInPre1()</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">htmlAttrInPre1</span>()</div>\n"
                 + "<div class=\"block\">More html tag outliers.\n"
                 + " <pre>\n"
                 + " @Override\n"
--- a/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java	Tue Jun 04 16:33:37 2019 +0200
@@ -96,7 +96,7 @@
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#between(java.time.LocalDate,java.time.LocalDate)\">"
                 + "between</a></span>&#8203;(java.time.LocalDate&nbsp;startDateInclusive,\n"
-                + "       java.time.LocalDate&nbsp;endDateExclusive)</code></th>");
+                + "java.time.LocalDate&nbsp;endDateExclusive)</code></th>");
 
         checkOutput("pkg1/Implementer.html", false,
                 "<h3>Methods inherited from interface&nbsp;pkg1.<a href=\"Interface.html\""
--- a/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testMemberSummary/TestMemberSummary.java	Tue Jun 04 16:33:37 2019 +0200
@@ -57,8 +57,9 @@
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\"><a href=\"#returnTypeTest()\">"
                 + "returnTypeTest</a></span>()</code>",
                 // Check return type in member detail.
-                "<pre class=\"methodSignature\">public&nbsp;<a href=\"PublicChild.html\" title=\"class in pkg\">"
-                + "PublicChild</a>&nbsp;returnTypeTest()</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"PublicChild.html\" title=\"class in pkg\">"
+                + "PublicChild</a></span>&nbsp;<span class=\"memberName\">returnTypeTest</span>()</div>",
                 "<th class=\"colConstructorName\" scope=\"row\"><code><span class=\"memberNameLink\">"
                 + "<a href=\"#%3Cinit%3E()\">PublicChild</a></span>()</code></th>");
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testMethodSignature/TestMethodSignature.java	Tue Jun 04 16:33:37 2019 +0200
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug      8214126
+ * @summary  Method signatures not formatted correctly in browser
+ * @library  ../../lib/
+ * @modules jdk.javadoc/jdk.javadoc.internal.tool
+ * @build javadoc.tester.*
+ * @run main TestMethodSignature
+ */
+
+import javadoc.tester.JavadocTester;
+
+public class TestMethodSignature extends JavadocTester {
+
+    public static void main(String... args) throws Exception {
+        TestMethodSignature tester = new TestMethodSignature();
+        tester.runTests();
+    }
+
+    @Test
+    public void test() {
+        javadoc("-d", "out",
+                "-sourcepath", testSrc,
+                "pkg");
+        checkExit(Exit.OK);
+
+        checkOutput("pkg/C.html", true,
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "@Generated(\"GeneratedConstructor\")\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"memberName\">C</span>()</div>",
+
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static</span>"
+                + "&nbsp;<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">"
+                + "simpleMethod</span>&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+                + "java.lang.String&nbsp;s,\nboolean&nbsp;b)</span></div>",
+
+                "<div class=\"memberSignature\"><span class=\"annotations\">@Generated"
+                + "(value=\"SomeGeneratedName\",\n           date=\"a date\",\n"
+                + "           comments=\"some comment about the method below\")\n"
+                + "</span><span class=\"modifiers\">public static</span>&nbsp;<span "
+                + "class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">annotatedMethod"
+                + "</span>&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+                + "java.lang.String&nbsp;s,\nboolean&nbsp;b)</span></div>",
+
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static</span>"
+                + "&nbsp;<span class=\"typeParametersLong\">&lt;T1 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T2 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T3 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T4 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T5 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T6 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T7 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T8 extends java.lang.AutoCloseable&gt;</span>\n"
+                + "<span class=\"returnType\"><a href=\"C.With8Types.html\" "
+                + "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=\"memberName\">bigGenericMethod</span>&#8203;("
+                + "<span class=\"arguments\"><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"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T3&gt;&nbsp;t3,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T4&gt;&nbsp;t4,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T5&gt;&nbsp;t5,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T6&gt;&nbsp;t6,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T7&gt;&nbsp;t7,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T8&gt;&nbsp;t8)</span>\n"
+                + "                                                "
+                + "throws <span class=\"exceptions\">java.lang.IllegalArgumentException,\n"
+                + "java.lang.IllegalStateException</span></div>",
+
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "@Generated(value=\"SomeGeneratedName\",\n"
+                + "           date=\"a date\",\n"
+                + "           comments=\"some comment about the method below\")\n"
+                + "</span><span class=\"modifiers\">public static</span>&nbsp;"
+                + "<span class=\"typeParametersLong\">"
+                + "&lt;T1 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T2 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T3 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T4 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T5 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T6 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T7 extends java.lang.AutoCloseable,&#8203;\n"
+                + "T8 extends java.lang.AutoCloseable&gt;</span>\n"
+                + "<span class=\"returnType\"><a href=\"C.With8Types.html\" "
+                + "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=\"memberName\">bigGenericAnnotatedMethod</span>&#8203;("
+                + "<span class=\"arguments\"><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"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T3&gt;&nbsp;t3,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T4&gt;&nbsp;t4,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T5&gt;&nbsp;t5,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T6&gt;&nbsp;t6,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T7&gt;&nbsp;t7,\n"
+                + "<a href=\"C.F0.html\" title=\"interface in pkg\">"
+                + "C.F0</a>&lt;? extends T8&gt;&nbsp;t8)</span>\n"
+                + "                                                         "
+                + "throws <span class=\"exceptions\">java.lang.IllegalArgumentException,\n"
+                + "java.lang.IllegalStateException</span></div>\n"
+                + "<div class=\"block\">Generic method with eight type args and annotation.</div>");
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/jdk/javadoc/doclet/testMethodSignature/pkg/C.java	Tue Jun 04 16:33:37 2019 +0200
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg;
+
+import javax.annotation.processing.Generated;
+
+/**
+ * Test class for rendering of method signatures. This provides some pathologically
+ * complex method signatures that require special handling. Other features are
+ * covered by other tests.
+ */
+public class C {
+
+    /**
+     * Annotated constructor.
+     */
+    @Generated(value = "GeneratedConstructor")
+    public C() {}
+
+
+    public interface F0<T> {
+        T apply() throws Exception;
+    }
+
+    public static class With8Types<T1, T2, T3, T4, T5, T6, T7, T8> { }
+
+
+    /**
+     * Simple method.
+     *
+     * @param i param 1
+     * @param s param 2
+     * @param b param 3
+     */
+    public static void simpleMethod(int i, String s, boolean b) {}
+
+
+    /**
+     * Annotated method.
+     *
+     * @param i param 1
+     * @param s param 2
+     * @param b param 3
+     */
+    @Generated(
+            value = "SomeGeneratedName",
+            date = "a date",
+            comments = "some comment about the method below")
+    public static void annotatedMethod(int i, String s, boolean b) {}
+
+
+    /**
+     * Generic method with eight type args.
+     *
+     * @param <T1> type 1
+     * @param <T2> type 2
+     * @param <T3> type 3
+     * @param <T4> type 4
+     * @param <T5> type 5
+     * @param <T6> type 6
+     * @param <T7> type 7
+     * @param <T8> type 8
+     * @param t1 param 1
+     * @param t2 param 2
+     * @param t3 param 3
+     * @param t4 param 4
+     * @param t5 param 5
+     * @param t6 param 6
+     * @param t7 param 7
+     * @param t8 param 8
+     * @return null
+     */
+    public static
+    <T1 extends AutoCloseable,
+            T2 extends AutoCloseable,
+            T3 extends AutoCloseable,
+            T4 extends AutoCloseable,
+            T5 extends AutoCloseable,
+            T6 extends AutoCloseable,
+            T7 extends AutoCloseable,
+            T8 extends AutoCloseable>
+    With8Types<T1, T2, T3, T4, T5, T6, T7, T8> bigGenericMethod(
+            F0<? extends T1> t1,
+            F0<? extends T2> t2,
+            F0<? extends T3> t3,
+            F0<? extends T4> t4,
+            F0<? extends T5> t5,
+            F0<? extends T6> t6,
+            F0<? extends T7> t7,
+            F0<? extends T8> t8)
+            throws IllegalArgumentException, IllegalStateException { return null; }
+
+
+    /**
+     * Generic method with eight type args and annotation.
+     *
+     * @param <T1> type 1
+     * @param <T2> type 2
+     * @param <T3> type 3
+     * @param <T4> type 4
+     * @param <T5> type 5
+     * @param <T6> type 6
+     * @param <T7> type 7
+     * @param <T8> type 8
+     * @param t1 param 1
+     * @param t2 param 2
+     * @param t3 param 3
+     * @param t4 param 4
+     * @param t5 param 5
+     * @param t6 param 6
+     * @param t7 param 7
+     * @param t8 param 8
+     * @return null
+     */
+    @Generated(
+            value = "SomeGeneratedName",
+            date = "a date",
+            comments = "some comment about the method below")
+    public static
+    <T1 extends AutoCloseable,
+            T2 extends AutoCloseable,
+            T3 extends AutoCloseable,
+            T4 extends AutoCloseable,
+            T5 extends AutoCloseable,
+            T6 extends AutoCloseable,
+            T7 extends AutoCloseable,
+            T8 extends AutoCloseable>
+    With8Types<T1, T2, T3, T4, T5, T6, T7, T8> bigGenericAnnotatedMethod(
+            F0<? extends T1> t1,
+            F0<? extends T2> t2,
+            F0<? extends T3> t3,
+            F0<? extends T4> t4,
+            F0<? extends T5> t5,
+            F0<? extends T6> t6,
+            F0<? extends T7> t7,
+            F0<? extends T8> t8)
+            throws IllegalArgumentException, IllegalStateException { return null; }
+}
--- a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java	Tue Jun 04 16:33:37 2019 +0200
@@ -81,8 +81,10 @@
                 "Returns the enum constant of this type with the specified name",
                 "Overloaded valueOf() method has correct documentation.",
                 "Overloaded values method  has correct documentation.",
-                "<pre class=\"methodSignature\">public static&nbsp;<a href=\"Coin.html\" title=\"enum in pkg\">Coin</a>" +
-                "&nbsp;valueOf&#8203;(java.lang.String&nbsp;name)</pre>\n" +
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"Coin.html\" title=\"enum in pkg\">Coin</a></span>&nbsp;"
+                + "<span class=\"memberName\">valueOf</span>&#8203;("
+                + "<span class=\"arguments\">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" +
@@ -131,8 +133,11 @@
                 + "<dd><code>V</code> - This is the second type "
                 + "parameter.",
                 // Signature of method with type parameters
-                "public&nbsp;&lt;T extends java.util.List,&#8203;V&gt;&nbsp;"
-                + "java.lang.String[]&nbsp;methodThatHasTypeParameters",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"typeParameters\">&lt;T extends java.util.List,&#8203;\nV&gt;</span>\n"
+                + "<span class=\"returnType\">java.lang.String[]</span>&nbsp;<span class=\"memberName\">"
+                + "methodThatHasTypeParameters</span>&#8203;(<span class=\"arguments\">T&nbsp;param1,\n"
+                + "V&nbsp;param2)</span></div>",
                 // Method that returns TypeParameters
                 "<td class=\"colFirst\"><code><a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]</code></td>\n"
@@ -140,10 +145,11 @@
                 + "<a href=\"#methodThatReturnsTypeParameterA(E%5B%5D)\">"
                 + "methodThatReturnsTypeParameterA</a></span>&#8203;(<a href=\"TypeParameters.html\" "
                 + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</code>",
-                "<pre class=\"methodSignature\">public&nbsp;<a href=\"TypeParameters.html\" "
-                + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;"
-                + "methodThatReturnsTypeParameterA&#8203;(<a href=\"TypeParameters.html\" "
-                + "title=\"type parameter in TypeParameters\">E</a>[]&nbsp;e)</pre>\n",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;<span "
+                + "class=\"returnType\"><a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">"
+                + "E</a>[]</span>&nbsp;<span class=\"memberName\">methodThatReturnsTypeParameterA</span>&#8203;("
+                + "<span class=\"arguments\"><a href=\"TypeParameters.html\" title=\"type parameter in TypeParameters\">"
+                + "E</a>[]&nbsp;e)</span></div>\n",
                 "<td class=\"colFirst\"><code>&lt;T extends java.lang.Object &amp; java.lang.Comparable&lt;? super T&gt;&gt;"
                 + "<br>T</code></td>\n"
                 + "<th class=\"colSecond\" scope=\"row\"><code><span class=\"memberNameLink\">"
@@ -210,7 +216,10 @@
         // Handle multiple bounds.
         //==============================================================
         checkOutput("pkg/MultiTypeParameters.html", true,
-                "public&nbsp;&lt;T extends java.lang.Number &amp; java.lang.Runnable&gt;&nbsp;T&nbsp;foo&#8203;(T&nbsp;t)");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"typeParameters\">&lt;T extends java.lang.Number &amp; java.lang.Runnable&gt;</span>\n"
+                + "<span class=\"returnType\">T</span>&nbsp;<span class=\"memberName\">foo</span>&#8203;"
+                + "(<span class=\"arguments\">T&nbsp;t)</span></div>");
 
         //==============================================================
         // Test Class-Use Documentation for Type Parameters.
@@ -531,45 +540,42 @@
                 + "AnnotationTypeUsage</span>\n"
                 + "extends java.lang.Object</pre>",
                 // FIELD
-                "<pre><a href=\"AnnotationType.html\" "
-                + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
-                + "=\"Field Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required()\">"
-                + "required</a>=1994)\n"
-                + "public&nbsp;int field</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\"><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
+                + "optional</a>=\"Field Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required()\">required</a>=1994)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"returnType\">int</span>"
+                + "&nbsp;<span class=\"memberName\">field</span></div>",
                 // CONSTRUCTOR
-                "<pre><a href=\"AnnotationType.html\" "
-                + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
-                + "=\"Constructor Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required()\">"
-                + "required</a>=1994)\n"
-                + "public&nbsp;AnnotationTypeUsage()</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\"><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
+                + "optional</a>=\"Constructor Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required()\">required</a>=1994)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"memberName\">AnnotationTypeUsage</span>()</div>",
                 // METHOD
-                "<pre class=\"methodSignature\"><a href=\"AnnotationType.html\" "
-                + "title=\"annotation in pkg\">@AnnotationType</a>("
-                + "<a href=\"AnnotationType.html#optional()\">optional</a>"
-                + "=\"Method Annotation\",\n"
-                + "                <a href=\"AnnotationType.html#required()\">"
-                + "required</a>=1994)\n"
-                + "public&nbsp;void&nbsp;method()</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\"><a href=\"AnnotationType.html\" "
+                + "title=\"annotation in pkg\">@AnnotationType</a>(<a href=\"AnnotationType.html#optional()\">"
+                + "optional</a>=\"Method Annotation\",\n"
+                + "                <a href=\"AnnotationType.html#required()\">required</a>=1994)\n"
+                + "</span><span class=\"modifiers\">public</span>&nbsp;<span class=\"returnType\">"
+                + "void</span>&nbsp;<span class=\"memberName\">method</span>()</div>",
                 // METHOD PARAMS
-                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;methodWithParams&#8203;("
-                + "<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)</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;<span "
+                + "class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">methodWithParams</span>"
+                + "&#8203;(<span class=\"arguments\"><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
-                "<pre>public&nbsp;AnnotationTypeUsage&#8203;(<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"
-                + "                           int&nbsp;documented,\n"
-                + "                           int&nbsp;undocmented)</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"memberName\">AnnotationTypeUsage</span>&#8203;(<span class=\"arguments\">"
+                + "<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"
+                + "int&nbsp;documented,\n"
+                + "int&nbsp;undocmented)</span></div>");
 
         //=================================
         // Annotatation Type Usage
--- a/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testOptions/TestOptions.java	Tue Jun 04 16:33:37 2019 +0200
@@ -197,15 +197,16 @@
                 + "<a id=\"DEFAULT_NAME\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>static final&nbsp;java.lang.String&nbsp;"
-                + "<a href=\"../src-html/linksource/AnnotationTypeField.html#line.32\">"
-                + "DEFAULT_NAME</a></pre>",
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                + "<span class=\"returnType\">java.lang.String</span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/AnnotationTypeField.html#line.32\">DEFAULT_NAME</a></span></div>",
                 "<h3>name</h3>\n"
                 + "<a id=\"name()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre>java.lang.String&nbsp;<a href="
-                + "\"../src-html/linksource/AnnotationTypeField.html#line.34\">name</a></pre>");
+                + "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\"><a href=\"../src-html/linksource/AnnotationTypeField.html#line.34\">"
+                + "name</a></span></div>");
 
         checkOutput("src-html/linksource/AnnotationTypeField.html", true,
                 "<title>Source code</title>",
@@ -215,10 +216,9 @@
         checkOutput("linksource/Properties.html", true,
                 "<pre>public class <a href=\"../src-html/linksource/Properties.html#line.29\">"
                 + "Properties</a>",
-                "<pre>public&nbsp;java.lang.Object <a href="
-                + "\"../src-html/linksource/Properties.html#line.31\">someProperty</a></pre>",
-                "<pre class=\"methodSignature\">public&nbsp;java.lang.Object&nbsp;<a href="
-                + "\"../src-html/linksource/Properties.html#line.31\">someProperty</a>()</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">java.lang.Object</span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/Properties.html#line.31\">someProperty</a></span></div>");
 
         checkOutput("src-html/linksource/Properties.html", true,
                 "<title>Source code</title>",
@@ -228,12 +228,15 @@
         checkOutput("linksource/SomeClass.html", true,
                 "<pre>public class <a href=\"../src-html/linksource/SomeClass.html#line.29\">"
                 + "SomeClass</a>\nextends java.lang.Object</pre>",
-                "<pre>public&nbsp;int <a href=\"../src-html/linksource/SomeClass.html#line.31\">"
-                + "field</a></pre>",
-                "<pre>public&nbsp;<a href=\"../src-html/linksource/SomeClass.html#line.33\">"
-                + "SomeClass</a>()</pre>",
-                "<pre class=\"methodSignature\">public&nbsp;int&nbsp;<a href=\"../src-html/linksource/SomeClass.html#line.36\">"
-                + "method</a>()</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/SomeClass.html#line.31\">field</a></span></div>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"memberName\"><a href=\"../src-html/linksource/SomeClass.html#line.33\">"
+                + "SomeClass</a></span>()</div>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/SomeClass.html#line.36\">method</a></span>()</div>");
 
         checkOutput("src-html/linksource/SomeClass.html", true,
                 "<title>Source code</title>",
@@ -247,12 +250,14 @@
                 + "public int method() {</a>");
 
         checkOutput("linksource/SomeEnum.html", true,
-                "<pre>public static final&nbsp;<a href=\"SomeEnum.html\" "
-                + "title=\"enum in linksource\">SomeEnum</a> <a href="
-                + "\"../src-html/linksource/SomeEnum.html#line.29\">VALUE1</a></pre>",
-                "<pre>public static final&nbsp;<a href=\"SomeEnum.html\" "
-                + "title=\"enum in linksource\">SomeEnum</a> <a href="
-                + "\"../src-html/linksource/SomeEnum.html#line.30\">VALUE2</a></pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"SomeEnum.html\" title=\"enum in linksource\">"
+                + "SomeEnum</a></span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/SomeEnum.html#line.29\">VALUE1</a></span></div>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public static final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"SomeEnum.html\" title=\"enum in linksource\">"
+                + "SomeEnum</a></span>&nbsp;<span class=\"memberName\">"
+                + "<a href=\"../src-html/linksource/SomeEnum.html#line.30\">VALUE2</a></span></div>");
 
         checkOutput("src-html/linksource/SomeEnum.html", true,
                 "<span class=\"sourceLineNo\">029</span><a id=\"line.29\">    VALUE1,</a>",
--- a/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Tue Jun 04 16:33:37 2019 +0200
@@ -516,10 +516,14 @@
 
             checkOrder("pkg5/AnnoFieldTest.html",
                     "<h2>Field Details</h2>",
-                    "<pre>static final&nbsp;int&nbsp;one</pre>",
-                    "<pre>static final&nbsp;int&nbsp;two</pre>",
-                    "<pre>static final&nbsp;int&nbsp;three</pre>",
-                    "<pre>static final&nbsp;int&nbsp;four</pre>");
+                    "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                    + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">one</span></div>",
+                    "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                    + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">two</span></div>",
+                    "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                    + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">three</span></div>",
+                    "<div class=\"memberSignature\"><span class=\"modifiers\">static final</span>&nbsp;"
+                    + "<span class=\"returnType\">int</span>&nbsp;<span class=\"memberName\">four</span></div>");
 
             checkOrder("pkg5/AnnoOptionalTest.html",
                     "<h2>Optional Element Summary</h2>",
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestBadOverride.java	Tue Jun 04 16:33:37 2019 +0200
@@ -57,7 +57,8 @@
                 + "<a id=\"toString()\">\n"
                 + "<!--   -->\n"
                 + "</a>\n"
-                + "<pre class=\"methodSignature\">public&nbsp;void&nbsp;toString()</pre>\n"
+                + "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">toString</span>()</div>\n"
                 + "<div class=\"block\">Why can't I do this ?</div>\n"
                 + "</section>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenDeprecatedMethods.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testOverriddenMethods/TestOverriddenDeprecatedMethods.java	Tue Jun 04 16:33:37 2019 +0200
@@ -57,9 +57,11 @@
 
         checkOrder("pkg1/SubClass.html",
                 "Method Detail",
-                "@Deprecated\npublic&nbsp;void&nbsp;func1()",
+                "<span class=\"annotations\">@Deprecated\n</span><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">func1</span>()",
                 "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span></div>",
-                "@Deprecated\npublic&nbsp;void&nbsp;func2()",
+                "<span class=\"annotations\">@Deprecated\n</span><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">func2</span>()",
                 "<div class=\"deprecationBlock\"><span class=\"deprecatedLabel\">Deprecated.</span></div>",
                 "<div class=\"block\">deprecated with comments</div>");
     }
--- a/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testPrivateClasses/TestPrivateClasses.java	Tue Jun 04 16:33:37 2019 +0200
@@ -70,7 +70,10 @@
                 + "<div class=\"inheritance\">pkg.PublicChild</div>\n"
                 + "</div>",
                 // Method is documented as though it is declared in the inheriting method.
-                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;methodInheritedFromParent&#8203;(int&nbsp;p1)",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">"
+                + "methodInheritedFromParent</span>&#8203;(<span class=\"arguments\">int&nbsp;p1)</span>\n"
+                + "                               throws <span class=\"exceptions\">java.lang.Exception</span></div>",
                 "<dl>\n"
                 + "<dt>All Implemented Interfaces:</dt>\n"
                 + "<dd><code><a href=\"PublicInterface.html\" title=\"interface in pkg\">"
--- a/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testProperty/TestProperty.java	Tue Jun 04 16:33:37 2019 +0200
@@ -50,10 +50,10 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/MyClass.html", true,
-                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
-                + "title=\"class in pkg\">ObjectProperty</a>"
-                + "&lt;<a href=\"MyObj.html\" "
-                + "title=\"class in pkg\">MyObj</a>&gt; goodProperty</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"ObjectProperty.html\" title=\"class in pkg\">"
+                + "ObjectProperty</a>&lt;<a href=\"MyObj.html\" title=\"class in pkg\">MyObj</a>&gt;</span>"
+                + "&nbsp;<span class=\"memberName\">goodProperty</span></div>\n"
                 + "<div class=\"block\">This is an Object property where the "
                 + "Object is a single Object.</div>\n"
                 + "<dl>\n"
@@ -63,10 +63,10 @@
                 + "<code>setGood(MyObj)</code></a></dd>\n"
                 + "</dl>",
 
-                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
-                + "title=\"class in pkg\">ObjectProperty</a>"
-                + "&lt;<a href=\"MyObj.html\" "
-                + "title=\"class in pkg\">MyObj</a>[]&gt; badProperty</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"ObjectProperty.html\" title=\"class in pkg\">"
+                + "ObjectProperty</a>&lt;<a href=\"MyObj.html\" title=\"class in pkg\">MyObj</a>[]&gt;</span>"
+                + "&nbsp;<span class=\"memberName\">badProperty</span></div>\n"
                 + "<div class=\"block\">This is an Object property where the "
                 + "Object is an array.</div>\n"
                 + "<dl>\n"
@@ -94,11 +94,11 @@
         );
 
         checkOutput("pkg/MyClassT.html", true,
-                "<pre>public final&nbsp;<a href=\"ObjectProperty.html\" "
-                + "title=\"class in pkg\">ObjectProperty</a>"
-                + "&lt;java.util.List&lt;<a href=\"MyClassT.html\" "
-                + "title=\"type parameter in MyClassT\">T</a>&gt;&gt; "
-                + "listProperty</pre>\n"
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"ObjectProperty.html\" title=\"class in pkg\">"
+                + "ObjectProperty</a>&lt;java.util.List&lt;<a href=\"MyClassT.html\" "
+                + "title=\"type parameter in MyClassT\">T</a>&gt;&gt;</span>&nbsp;"
+                + "<span class=\"memberName\">listProperty</span></div>\n"
                 + "<div class=\"block\">This is an Object property where the "
                 + "Object is a single <code>List&lt;T&gt;</code>.</div>\n"
                 + "<dl>\n"
--- a/test/langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testSerializedFormWithClassFile/TestSerializedFormWithClassFile.java	Tue Jun 04 16:33:37 2019 +0200
@@ -73,10 +73,11 @@
         checkExit(Exit.OK);
 
         checkOutput("serialized-form.html", true,
-                "<pre class=\"methodSignature\">public&nbsp;void&nbsp;readObject&#8203;"
-                + "(java.io.ObjectInputStream&nbsp;arg0)\n"
-                + "                throws java.lang.ClassNotFoundException,\n"
-                + "                       java.io.IOException</pre>\n");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">readObject</span>"
+                + "&#8203;(<span class=\"arguments\">java.io.ObjectInputStream&nbsp;arg0)</span>\n"
+                + "                throws <span class=\"exceptions\">java.lang.ClassNotFoundException,\n"
+                + "java.io.IOException</span></div>\n");
     }
 
     void createTestClass(Path base, Path srcDir) throws Exception {
--- a/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java	Tue Jun 04 16:33:37 2019 +0200
@@ -165,9 +165,9 @@
                 + "th.colFirst a:link, th.colFirst a:visited,\n"
                 + "th.colSecond a:link, th.colSecond a:visited,\n"
                 + "th.colConstructorName a:link, th.colConstructorName a:visited,\n"
-                + "th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, \n"
-                + ".constantValuesContainer td a:link, .constantValuesContainer td a:visited, \n"
-                + ".allClassesContainer td a:link, .allClassesContainer td a:visited, \n"
+                + "th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited,\n"
+                + ".constantValuesContainer td a:link, .constantValuesContainer td a:visited,\n"
+                + ".allClassesContainer td a:link, .allClassesContainer td a:visited,\n"
                 + ".allPackagesContainer td a:link, .allPackagesContainer td a:visited {\n"
                 + "    font-weight:bold;\n"
                 + "}",
--- a/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testSummaryTag/TestSummaryTag.java	Tue Jun 04 16:33:37 2019 +0200
@@ -90,7 +90,8 @@
              + "<a id=\"m3()\">\n"
              + "<!--   -->\n"
              + "</a>\n"
-             + "<pre class=\"methodSignature\">public&nbsp;void&nbsp;m3()</pre>\n"
+             + "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>&nbsp;"
+             + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">m3</span>()</div>\n"
              + "<div class=\"block\">First sentence  some text maybe second sentence.</div>\n"
              + "</section>\n"
         );
--- a/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testTypeAnnotations/TestTypeAnnotations.java	Tue Jun 04 16:33:37 2019 +0200
@@ -115,249 +115,274 @@
 
         // Test for type annotations on fields (Fields.java).
         checkOutput("typeannos/DefaultScope.html", true,
-                "<pre><a href=\"Parameterized.html\" title=\"class in "
-                + "typeannos\">Parameterized</a>&lt;<a href=\"FldA.html\" "
-                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,&#8203;<a "
-                + "href=\"FldB.html\" title=\"annotation in typeannos\">"
-                + "@FldB</a> java.lang.String&gt; bothTypeArgs</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"Parameterized.html\" "
+                + "title=\"class in typeannos\">Parameterized</a>&lt;<a href=\"FldA.html\" "
+                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,&#8203;"
+                + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> java.lang.String&gt;"
+                + "</span>&nbsp;<span class=\"memberName\">bothTypeArgs</span></div>",
 
-                "<pre><a href=\"FldA.html\" title=\"annotation in "
-                + "typeannos\">@FldA</a> java.lang.String <a href=\""
-                + "FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] "
-                + "array1Deep</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"FldA.html\" "
+                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String <a href=\"FldB.html\" "
+                + "title=\"annotation in typeannos\">@FldB</a> []</span>&nbsp;"
+                + "<span class=\"memberName\">array1Deep</span></div>",
 
-                "<pre>java.lang.String <a href=\"FldB.html\" "
-                + "title=\"annotation in typeannos\">@FldB</a> [][] array2SecondOld</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String "
+                + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> [][]</span>&nbsp;"
+                + "<span class=\"memberName\">array2SecondOld</span></div>",
 
                 // When JDK-8068737, we should change the order
-                "<pre><a href=\"FldD.html\" title=\"annotation in typeannos\">"
-                + "@FldD</a> java.lang.String "
-                + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> "
-                + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> [] "
-                + "<a href=\"FldC.html\" title=\"annotation in typeannos\">@FldC</a> "
-                + "<a href=\"FldA.html\" title=\"annotation in typeannos\">@FldA</a> [] "
-                + "array2Deep</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"FldD.html\" "
+                + "title=\"annotation in typeannos\">@FldD</a> java.lang.String <a href=\"FldC.html\" "
+                + "title=\"annotation in typeannos\">@FldC</a> <a href=\"FldB.html\" "
+                + "title=\"annotation in typeannos\">@FldB</a> [] <a href=\"FldC.html\" "
+                + "title=\"annotation in typeannos\">@FldC</a> <a href=\"FldA.html\" "
+                + "title=\"annotation in typeannos\">@FldA</a> []</span>&nbsp;"
+                + "<span class=\"memberName\">array2Deep</span></div>");
 
         checkOutput("typeannos/ModifiedScoped.html", true,
-                "<pre>public final&nbsp;<a href=\"Parameterized.html\" "
-                + "title=\"class in typeannos\">Parameterized</a>&lt;<a href=\""
-                + "FldA.html\" title=\"annotation in typeannos\">@FldA</a> "
-                + "<a href=\"Parameterized.html\" title=\"class in "
-                + "typeannos\">Parameterized</a>&lt;<a href=\"FldA.html\" "
-                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,&#8203;<a "
-                + "href=\"FldB.html\" title=\"annotation in typeannos\">"
-                + "@FldB</a> java.lang.String&gt;,&#8203;<a href=\"FldB.html\" "
-                + "title=\"annotation in typeannos\">@FldB</a> java.lang.String&gt; "
-                + "nestedParameterized</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>"
+                + "&nbsp;<span class=\"returnType\"><a href=\"Parameterized.html\" "
+                + "title=\"class in typeannos\">Parameterized</a>&lt;<a href=\"FldA.html\" "
+                + "title=\"annotation in typeannos\">@FldA</a> <a href=\"Parameterized.html\" "
+                + "title=\"class in typeannos\">Parameterized</a>&lt;<a href=\"FldA.html\" "
+                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String,&#8203;"
+                + "<a href=\"FldB.html\" title=\"annotation in typeannos\">@FldB</a> "
+                + "java.lang.String&gt;,&#8203;<a href=\"FldB.html\" "
+                + "title=\"annotation in typeannos\">@FldB</a> java.lang.String&gt;"
+                + "</span>&nbsp;<span class=\"memberName\">nestedParameterized</span></div>",
 
-                "<pre>public final&nbsp;<a href=\"FldA.html\" "
-                + "title=\"annotation in typeannos\">@FldA</a> java.lang.String[][] "
-                + "array2</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"FldA.html\" title=\"annotation in typeannos\">"
+                + "@FldA</a> java.lang.String[][]</span>&nbsp;"
+                + "<span class=\"memberName\">array2</span></div>");
 
         // Test for type annotations on method return types (MethodReturnType.java).
         checkOutput("typeannos/MtdDefaultScope.html", true,
-                "<pre class=\"methodSignature\">public&nbsp;&lt;T&gt;&nbsp;<a href=\"MRtnA.html\" "
-                + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String"
-                + "&nbsp;method()</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public</span>"
+                + "&nbsp;<span class=\"typeParameters\">&lt;T&gt;</span>&nbsp;<span "
+                + "class=\"returnType\"><a href=\"MRtnA.html\" title=\"annotation in typeannos\">"
+                + "@MRtnA</a> java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">method</span>()</div>",
 
                 // When JDK-8068737 is fixed, we should change the order
-                "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in typeannos\">"
-                + "@MRtnA</a> java.lang.String "
-                + "<a href=\"MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> [] "
-                + "<a href=\"MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> []"
-                + "&nbsp;array2Deep()</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"MRtnA.html\" "
+                + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String <a href=\"MRtnB.html\" "
+                + "title=\"annotation in typeannos\">@MRtnB</a> [] <a href=\"MRtnA.html\" "
+                + "title=\"annotation in typeannos\">@MRtnA</a> []</span>&nbsp;<span class=\"memberName\">"
+                + "array2Deep</span>()</div>",
 
-                "<pre class=\"methodSignature\"><a href=\"MRtnA.html\" title=\"annotation in "
-                + "typeannos\">@MRtnA</a> java.lang.String[][]&nbsp;array2()</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"MRtnA.html\" "
+                + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String[][]</span>&nbsp;"
+                + "<span class=\"memberName\">array2</span>()</div>");
 
         checkOutput("typeannos/MtdModifiedScoped.html", true,
-                "<pre class=\"methodSignature\">public final&nbsp;<a href=\"MtdParameterized.html\" "
-                + "title=\"class in typeannos\">MtdParameterized</a>&lt;<a href=\""
-                + "MRtnA.html\" title=\"annotation in typeannos\">@MRtnA</a> "
-                + "<a href=\"MtdParameterized.html\" title=\"class in "
-                + "typeannos\">MtdParameterized</a>&lt;<a href=\"MRtnA."
-                + "html\" title=\"annotation in typeannos\">@MRtnA</a> java.lang."
-                + "String,&#8203;<a href=\"MRtnB.html\" title=\"annotation in "
-                + "typeannos\">@MRtnB</a> java.lang.String&gt;,&#8203;<a href=\""
-                + "MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> java."
-                + "lang.String&gt;&nbsp;nestedMtdParameterized()</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\"><a href=\"MtdParameterized.html\" "
+                + "title=\"class in typeannos\">MtdParameterized</a>&lt;<a href=\"MRtnA.html\" "
+                + "title=\"annotation in typeannos\">@MRtnA</a> <a href=\"MtdParameterized.html\" "
+                + "title=\"class in typeannos\">MtdParameterized</a>&lt;<a href=\"MRtnA.html\" "
+                + "title=\"annotation in typeannos\">@MRtnA</a> java.lang.String,&#8203;"
+                + "<a href=\"MRtnB.html\" title=\"annotation in typeannos\">@MRtnB</a> "
+                + "java.lang.String&gt;,&#8203;<a href=\"MRtnB.html\" title=\"annotation in typeannos\">"
+                + "@MRtnB</a> java.lang.String&gt;</span>&nbsp;<span class=\"memberName\">"
+                + "nestedMtdParameterized</span>()</div>");
 
         // Test for type annotations on method type parameters (MethodTypeParameters.java).
         checkOutput("typeannos/UnscopedUnmodified.html", true,
-                "<pre class=\"methodSignature\">&lt;K extends <a href=\"MTyParamA.html\" title=\""
-                + "annotation in typeannos\">@MTyParamA</a> java.lang.String&gt;"
-                + "&nbsp;void&nbsp;methodExtends()</pre>",
+                "<div class=\"memberSignature\"><span class=\"typeParameters\">&lt;K extends "
+                + "<a href=\"MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
+                + "java.lang.String&gt;</span>&nbsp;<span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">methodExtends</span>()</div>",
 
-                "<pre class=\"methodSignature\">&lt;K extends <a href=\"MTyParamA.html\" title=\""
-                + "annotation in typeannos\">@MTyParamA</a> <a href=\""
-                + "MtdTyParameterized.html\" title=\"class in typeannos\">"
-                + "MtdTyParameterized</a>&lt;<a href=\"MTyParamB.html\" "
-                + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String"
-                + "&gt;&gt;&nbsp;void&nbsp;nestedExtends()</pre>");
+                "<div class=\"memberSignature\"><span class=\"typeParametersLong\">&lt;K extends "
+                + "<a href=\"MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
+                + "<a href=\"MtdTyParameterized.html\" title=\"class in typeannos\">MtdTyParameterized</a>"
+                + "&lt;<a href=\"MTyParamB.html\" title=\"annotation in typeannos\">@MTyParamB</a> "
+                + "java.lang.String&gt;&gt;</span>\n<span class=\"returnType\">void</span>"
+                + "&nbsp;<span class=\"memberName\">nestedExtends</span>()</div>");
 
         checkOutput("typeannos/PublicModifiedMethods.html", true,
-                "<pre class=\"methodSignature\">public final&nbsp;&lt;K extends <a href=\""
-                + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
-                + "java.lang.String&gt;&nbsp;void&nbsp;methodExtends()</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"typeParameters\">&lt;K extends <a href=\"MTyParamA.html\" "
+                + "title=\"annotation in typeannos\">@MTyParamA</a> java.lang.String&gt;</span>\n"
+                + "<span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">methodExtends</span>()</div>",
 
-                "<pre class=\"methodSignature\">public final&nbsp;&lt;K extends <a href=\""
-                + "MTyParamA.html\" title=\"annotation in typeannos\">@MTyParamA</a> "
-                + "java.lang.String,&#8203;V extends <a href=\"MTyParamA.html\" "
-                + "title=\"annotation in typeannos\">@MTyParamA</a> <a href=\""
-                + "MtdTyParameterized.html\" title=\"class in typeannos\">"
-                + "MtdTyParameterized</a>&lt;<a href=\"MTyParamB.html\" "
-                + "title=\"annotation in typeannos\">@MTyParamB</a> java.lang.String"
-                + "&gt;&gt;&nbsp;void&nbsp;dual()</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>"
+                + "&nbsp;<span class=\"typeParametersLong\">&lt;K extends <a href=\"MTyParamA.html\" "
+                + "title=\"annotation in typeannos\">@MTyParamA</a> java.lang.String,&#8203;\n"
+                + "V extends <a href=\"MTyParamA.html\" title=\"annotation in typeannos\">"
+                + "@MTyParamA</a> <a href=\"MtdTyParameterized.html\" title=\"class in typeannos\">"
+                + "MtdTyParameterized</a>&lt;<a href=\"MTyParamB.html\" title=\"annotation in typeannos\">"
+                + "@MTyParamB</a> java.lang.String&gt;&gt;</span>\n<span class=\"returnType\">void</span>"
+                + "&nbsp;<span class=\"memberName\">dual</span>()</div>");
 
         // Test for type annotations on parameters (Parameters.java).
         checkOutput("typeannos/Parameters.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;unannotated&#8203;(<a href=\""
-                + "ParaParameterized.html\" title=\"class in typeannos\">"
-                + "ParaParameterized</a>&lt;java.lang.String,&#8203;java.lang.String&gt;"
-                + "&nbsp;a)</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">unannotated</span>&#8203;(<span class=\"arguments\">"
+                + "<a href=\"ParaParameterized.html\" title=\"class in typeannos\">ParaParameterized</a>"
+                + "&lt;java.lang.String,&#8203;java.lang.String&gt;&nbsp;a)</span></div>",
 
-                "<pre class=\"methodSignature\">void&nbsp;nestedParaParameterized&#8203;(<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\" "
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">nestedParaParameterized</span>&#8203;"
+                + "(<span class=\"arguments\"><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\" "
                 + "title=\"annotation in typeannos\">@ParamA</a> java.lang.String,&#8203;"
-                + "<a href=\"ParamB.html\" title=\"annotation in "
-                + "typeannos\">@ParamB</a> java.lang.String&gt;,&#8203;<a href=\""
-                + "ParamB.html\" title=\"annotation in typeannos\">@ParamB"
-                + "</a> java.lang.String&gt;&nbsp;a)</pre>",
+                + "<a href=\"ParamB.html\" title=\"annotation in typeannos\">@ParamB</a> "
+                + "java.lang.String&gt;,&#8203;<a href=\"ParamB.html\" title=\"annotation in typeannos\">"
+                + "@ParamB</a> java.lang.String&gt;&nbsp;a)</span></div>",
 
                 // When JDK-8068737 is fixed, we should change the order
-                "<pre class=\"methodSignature\">void&nbsp;array2Deep&#8203;(<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\">"
-                + "@ParamA</a> []"
-                + "&nbsp;a)</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">array2Deep</span>&#8203;(<span class=\"arguments\">"
+                + "<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\">"
+                + "@ParamA</a> []&nbsp;a)</span></div>");
 
         // Test for type annotations on throws (Throws.java).
         checkOutput("typeannos/ThrDefaultUnmodified.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;oneException()\n"
-                + "           throws <a href=\"ThrA.html\" title=\""
-                + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">oneException</span>()\n"
+                + "           throws <span class=\"exceptions\"><a href=\"ThrA.html\" "
+                + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</span></div>",
 
-                "<pre class=\"methodSignature\">void&nbsp;twoExceptions()\n"
-                + "            throws <a href=\"ThrA.html\" title=\""
-                + "annotation in typeannos\">@ThrA</a> java.lang.RuntimeException,\n"
-                + "                   <a href=\"ThrA.html\" title=\""
-                + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">twoExceptions</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> "
+                + "java.lang.Exception</span></div>");
 
         checkOutput("typeannos/ThrPublicModified.html", true,
-                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;oneException&#8203;"
-                + "(java.lang.String&nbsp;a)\n                        throws <a href=\"ThrA.html\" "
-                + "title=\"annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">"
+                + "oneException</span>&#8203;(<span class=\"arguments\">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>",
 
-                "<pre class=\"methodSignature\">public final&nbsp;void&nbsp;twoExceptions&#8203;"
-                + "(java.lang.String&nbsp;a)\n                         throws <a href=\"ThrA.html\" "
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">"
+                + "twoExceptions</span>&#8203;(<span class=\"arguments\">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> java.lang.Exception</pre>");
+                + "<a href=\"ThrA.html\" title=\"annotation in typeannos\">@ThrA</a> "
+                + "java.lang.Exception</span></div>");
 
         checkOutput("typeannos/ThrWithValue.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;oneException()\n"
-                + "           throws <a href=\"ThrB.html\" title=\""
-                + "annotation in typeannos\">@ThrB</a>("
-                + "\"m\") java.lang.Exception</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">oneException</span>()\n"
+                + "           throws <span class=\"exceptions\"><a href=\"ThrB.html\" "
+                + "title=\"annotation in typeannos\">@ThrB</a>(\"m\") java.lang.Exception</span></div>",
 
-                "<pre class=\"methodSignature\">void&nbsp;twoExceptions()\n"
-                + "            throws <a href=\"ThrB.html\" title=\""
-                + "annotation in typeannos\">@ThrB</a>("
-                + "\"m\") java.lang.RuntimeException,\n"
-                + "                   <a href=\"ThrA.html\" title=\""
-                + "annotation in typeannos\">@ThrA</a> java.lang.Exception</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">twoExceptions</span>()\n"
+                + "            throws <span class=\"exceptions\"><a href=\"ThrB.html\" "
+                + "title=\"annotation in typeannos\">@ThrB</a>(\"m\") java.lang.RuntimeException,\n"
+                + "<a href=\"ThrA.html\" title=\"annotation in typeannos\">@ThrA</a> "
+                + "java.lang.Exception</span></div>");
 
         // Test for type annotations on type parameters (TypeParameters.java).
         checkOutput("typeannos/TestMethods.html", true,
-                "<pre class=\"methodSignature\">&lt;K,&#8203;<a href=\"TyParaA.html\" title="
-                + "\"annotation in typeannos\">@TyParaA</a> V extends <a href=\"TyParaA.html\" "
-                + "title=\"annotation in typeannos\">@TyParaA</a> "
-                + "java.lang.String&gt;&nbsp;void&nbsp;secondAnnotated()</pre>"
+                "<div class=\"memberSignature\"><span class=\"typeParameters\">&lt;K,&#8203;\n"
+                + "<a href=\"TyParaA.html\" title=\"annotation in typeannos\">@TyParaA</a> V extends "
+                + "<a href=\"TyParaA.html\" title=\"annotation in typeannos\">@TyParaA</a> "
+                + "java.lang.String&gt;</span>\n<span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">secondAnnotated</span>()</div>"
         );
 
         // Test for type annotations on wildcard type (Wildcards.java).
         checkOutput("typeannos/BoundTest.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;wcExtends&#8203;(<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)</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">wcExtends</span>&#8203;(<span class=\"arguments\">"
+                + "<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>",
 
-                "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
-                + "typeannos\">MyList</a>&lt;? super <a href=\"WldA.html\" "
-                + "title=\"annotation in typeannos\">@WldA</a> java.lang.String&gt;"
-                + "&nbsp;returnWcSuper()</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"MyList.html\" "
+                + "title=\"class in typeannos\">MyList</a>&lt;? super <a href=\"WldA.html\" "
+                + "title=\"annotation in typeannos\">@WldA</a> java.lang.String&gt;</span>&nbsp;"
+                + "<span class=\"memberName\">returnWcSuper</span>()</div>");
 
         checkOutput("typeannos/BoundWithValue.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;wcSuper&#8203;(<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)</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">wcSuper</span>&#8203;(<span class=\"arguments\">"
+                + "<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>",
 
-                "<pre class=\"methodSignature\"><a href=\"MyList.html\" title=\"class in "
-                + "typeannos\">MyList</a>&lt;? extends <a href=\"WldB."
-                + "html\" title=\"annotation in typeannos\">@WldB</a>("
-                + "\"m\") java.lang.String"
-                + "&gt;&nbsp;returnWcExtends()</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\"><a href=\"MyList.html\" "
+                + "title=\"class in typeannos\">MyList</a>&lt;? extends <a href=\"WldB.html\" "
+                + "title=\"annotation in typeannos\">@WldB</a>(\"m\") java.lang.String&gt;</span>"
+                + "&nbsp;<span class=\"memberName\">returnWcExtends</span>()</div>");
 
         // Test for receiver annotations (Receivers.java).
         checkOutput("typeannos/DefaultUnmodified.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;withException&#8203;(<a href=\"RcvrA.html\" "
-                + "title=\"annotation in typeannos\">@RcvrA</a>&nbsp;"
-                + "DefaultUnmodified&nbsp;this)\n"
-                + "            throws java."
-                + "lang.Exception</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">withException</span>&#8203;(<span class=\"arguments\">"
+                + "<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>",
 
-                "<pre class=\"methodSignature\">java.lang.String&nbsp;nonVoid&#8203;(<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)</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">nonVoid</span>&#8203;(<span class=\"arguments\">"
+                + "<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>",
 
-                "<pre class=\"methodSignature\">&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
-                + "<a href=\"RcvrA.html\" title=\"annotation in "
-                + "typeannos\">@RcvrA</a>&nbsp;DefaultUnmodified&nbsp;this,\n"
-                + "                                           T&nbsp;r)\n"
-                + "                                    throws java.lang.Exception</pre>");
+                "<div class=\"memberSignature\"><span class=\"typeParameters\">&lt;T extends "
+                + "java.lang.Runnable&gt;</span>&nbsp;<span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">accept</span>&#8203;(<span class=\"arguments\">"
+                + "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>&nbsp;"
+                + "DefaultUnmodified&nbsp;this,\nT&nbsp;r)</span>\n"
+                + "                                    throws <span class=\"exceptions\">"
+                + "java.lang.Exception</span></div>");
 
         checkOutput("typeannos/PublicModified.html", true,
-                "<pre class=\"methodSignature\">public final&nbsp;java.lang.String&nbsp;nonVoid&#8203;"
-                + "(<a href=\"RcvrA.html\" title=\"annotation in typeannos\">"
-                + "@RcvrA</a>&nbsp;PublicModified&nbsp;this)</pre>",
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"returnType\">java.lang.String</span>&nbsp;<span class=\"memberName\">"
+                + "nonVoid</span>&#8203;(<span class=\"arguments\"><a href=\"RcvrA.html\" "
+                + "title=\"annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this)"
+                + "</span></div>",
 
-                "<pre class=\"methodSignature\">public final&nbsp;&lt;T extends java.lang.Runnable&gt;&nbsp;"
-                + "void&nbsp;accept&#8203;(<a href=\"RcvrA.html\" title=\""
-                + "annotation in typeannos\">@RcvrA</a>&nbsp;PublicModified&nbsp;this,\n"
-                + "                                                        T&nbsp;r)\n"
-                + "                                                 throws java.lang.Exception</pre>");
+                "<div class=\"memberSignature\"><span class=\"modifiers\">public final</span>&nbsp;"
+                + "<span class=\"typeParameters\">&lt;T extends java.lang.Runnable&gt;</span>&nbsp;"
+                + "<span class=\"returnType\">void</span>&nbsp;<span class=\"memberName\">accept"
+                + "</span>&#8203;(<span class=\"arguments\"><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>");
 
         checkOutput("typeannos/WithValue.html", true,
-                "<pre class=\"methodSignature\">&lt;T extends java.lang.Runnable&gt;&nbsp;void&nbsp;accept&#8203;("
-                + "<a href=\"RcvrB.html\" title=\"annotation in "
-                + "typeannos\">@RcvrB</a>("
-                + "\"m\")&nbsp;WithValue&nbsp;this,\n"
-                + "                                           T&nbsp;r)\n"
-                + "                                    throws java.lang.Exception</pre>");
+                "<div class=\"memberSignature\"><span class=\"typeParameters\">&lt;T extends "
+                + "java.lang.Runnable&gt;</span>&nbsp;<span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">accept</span>&#8203;(<span class=\"arguments\">"
+                + "<a href=\"RcvrB.html\" title=\"annotation in typeannos\">@RcvrB</a>(\"m\")"
+                + "&nbsp;WithValue&nbsp;this,\nT&nbsp;r)</span>\n"
+                + "                                    throws <span class=\"exceptions\">"
+                + "java.lang.Exception</span></div>");
 
         checkOutput("typeannos/WithFinal.html", true,
-                "<pre class=\"methodSignature\">java.lang.String&nbsp;nonVoid&#8203;(<a href=\"RcvrB.html\" "
-                + "title=\"annotation in typeannos\">@RcvrB</a>(\"m\") "
-                + "<a href=\"WithFinal.html\" title=\"class in typeannos\">"
-                + "WithFinal</a>&nbsp;afield)</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String</span>"
+                + "&nbsp;<span class=\"memberName\">nonVoid</span>&#8203;(<span class=\"arguments\">"
+                + "<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,
-                "<pre class=\"methodSignature\">void&nbsp;field&#8203;(<a href=\"RcvrA.html\" title=\""
-                + "annotation in typeannos\">@RcvrA</a>&nbsp;WithBody&nbsp;this)</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">field</span>&#8203;(<span class=\"arguments\">"
+                + "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>"
+                + "&nbsp;WithBody&nbsp;this)</span></div>");
 
         checkOutput("typeannos/Generic2.html", true,
-                "<pre class=\"methodSignature\">void&nbsp;test2&#8203;(<a href=\"RcvrA.html\" title=\""
-                + "annotation in typeannos\">@RcvrA</a>&nbsp;Generic2&lt;X&gt;&nbsp;this)</pre>");
+                "<div class=\"memberSignature\"><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">test2</span>&#8203;(<span class=\"arguments\">"
+                + "<a href=\"RcvrA.html\" title=\"annotation in typeannos\">@RcvrA</a>"
+                + "&nbsp;Generic2&lt;X&gt;&nbsp;this)</span></div>");
 
 
         // Test for repeated type annotations (RepeatedAnnotations.java).
@@ -393,84 +418,82 @@
 //                + "extends java.lang.Object</pre>");
 
         checkOutput("typeannos/RepeatingOnConstructor.html", true,
-                "<pre><a href=\"RepConstructorA.html\" title=\"annotation "
-                + "in typeannos\">@RepConstructorA</a> <a href=\"RepConstructorA.html"
-                + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href="
-                + "\"RepConstructorB.html\" title=\"annotation in typeannos"
-                + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html"
-                + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n"
-                + "RepeatingOnConstructor()</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepConstructorA.html\" title=\"annotation in typeannos\">"
+                + "@RepConstructorA</a> <a href=\"RepConstructorA.html\" "
+                + "title=\"annotation in typeannos\">@RepConstructorA</a>\n"
+                + "<a href=\"RepConstructorB.html\" title=\"annotation in typeannos\">"
+                + "@RepConstructorB</a> <a href=\"RepConstructorB.html\" "
+                + "title=\"annotation in typeannos\">@RepConstructorB</a>\n"
+                + "</span><span class=\"memberName\">RepeatingOnConstructor</span>()</div>",
 
-                "<pre><a href=\"RepConstructorA.html\" title=\"annotation in typeannos"
-                + "\">@RepConstructorA</a> <a href=\"RepConstructorA.html"
-                + "\" title=\"annotation in typeannos\">@RepConstructorA</a>\n<a href="
-                + "\"RepConstructorB.html\" title=\"annotation in typeannos"
-                + "\">@RepConstructorB</a> <a href=\"RepConstructorB.html"
-                + "\" title=\"annotation in typeannos\">@RepConstructorB</a>\n"
-                + "RepeatingOnConstructor&#8203;(int&nbsp;i,\n                       int&nbsp;j)</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepConstructorA.html\" title=\"annotation in typeannos\">"
+                + "@RepConstructorA</a> <a href=\"RepConstructorA.html\" "
+                + "title=\"annotation in typeannos\">@RepConstructorA</a>\n"
+                + "<a href=\"RepConstructorB.html\" title=\"annotation in typeannos\">"
+                + "@RepConstructorB</a> <a href=\"RepConstructorB.html\" "
+                + "title=\"annotation in typeannos\">@RepConstructorB</a>\n"
+                + "</span><span class=\"memberName\">RepeatingOnConstructor</span>"
+                + "&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+                + "int&nbsp;j)</span></div>",
 
-                "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos"
-                + "\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
-                + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n"
-                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos"
-                + "\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
-                + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
-                + "RepeatingOnConstructor&#8203;(int&nbsp;i,\n                       int&nbsp;j,\n"
-                + "                       int&nbsp;k)</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a>\n"
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
+                + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
+                + "</span><span class=\"memberName\">RepeatingOnConstructor</span>"
+                + "&#8203;(<span class=\"arguments\">int&nbsp;i,\n"
+                + "int&nbsp;j,\nint&nbsp;k)</span></div>",
 
-                "<pre>RepeatingOnConstructor&#8203;(<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> "
-                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos"
-                + "\">@RepParameterB</a>\n                       java.lang.String&nbsp;parameter,\n"
-                + "                       <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> <a href="
-                + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
-                + "@RepParameterB</a>\n                       java.lang.String "
-                + "<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\" title=\"annotation in typeannos\">"
-                + "@RepTypeUseB</a> ...&nbsp;vararg)</pre>"
+                "<div class=\"memberSignature\"><span class=\"memberName\">RepeatingOnConstructor</span>"
+                + "&#8203;(<span class=\"arguments\"><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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String&nbsp;parameter,\n<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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String <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\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</span></div>"
         );
 
         checkOutput("typeannos/RepeatingOnConstructor.Inner.html", true,
                 "<code><span class=\"memberNameLink\"><a href=\"#%3Cinit%3E(java.lang.String,"
                 + "java.lang.String...)\">Inner</a></span>&#8203;(java.lang.String&nbsp;parameter,\n"
-                + "     java.lang.String <a href=\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
+                + "java.lang.String <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\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseB</a> ...&nbsp;vararg)</code>",
-                "Inner&#8203;(<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\" title=\"annotation in typeannos\">"
-                + "@RepTypeUseB</a>&nbsp;RepeatingOnConstructor&nbsp;this,\n      <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> <a href="
-                + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
-                + "@RepParameterB</a>\n      java.lang.String&nbsp;parameter,\n"
-                + "      <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> <a href="
-                + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
-                + "@RepParameterB</a>\n      java.lang.String <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"
-                + "\" title=\"annotation in typeannos\">@RepTypeUseB</a> ...&nbsp;vararg)");
+                "Inner</span>&#8203;(<span class=\"arguments\"><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\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseB</a>&nbsp;RepeatingOnConstructor&nbsp;this,\n"
+                + "<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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String&nbsp;parameter,\n<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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String <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\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)</span>");
 
         checkOutput("typeannos/RepeatingOnField.html", true,
                 "<code>(package private) java.lang.Integer</code></td>\n<th class=\"colSecond\" scope=\"row\">"
@@ -519,57 +542,55 @@
                 + "\"memberNameLink\"><a href=\"#sa"
                 + "\">sa</a></span></code>",
 
-                "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">"
-                + "@RepFieldA</a> <a href=\"RepFieldA.html\" title="
-                + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html"
-                + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href="
-                + "\"RepFieldB.html\" title=\"annotation in typeannos\">"
-                + "@RepFieldB</a>\njava.lang.Integer i1</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepFieldA.html\" title=\"annotation in typeannos\">@RepFieldA</a> "
+                + "<a href=\"RepFieldA.html\" title=\"annotation in typeannos\">@RepFieldA</a>\n"
+                + "<a href=\"RepFieldB.html\" title=\"annotation in typeannos\">@RepFieldB</a> "
+                + "<a href=\"RepFieldB.html\" title=\"annotation in typeannos\">@RepFieldB</a>\n"
+                + "</span><span class=\"returnType\">java.lang.Integer</span>&nbsp;"
+                + "<span class=\"memberName\">i1</span></div>",
 
-                "<pre><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\" title="
-                + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i2</pre>",
-
-                "<pre><a href=\"RepFieldA.html\" title=\"annotation in typeannos\">"
-                + "@RepFieldA</a> <a href=\"RepFieldA.html\" title="
-                + "\"annotation in typeannos\">@RepFieldA</a>\n<a href=\"RepFieldB.html"
-                + "\" title=\"annotation in typeannos\">@RepFieldB</a> <a href="
-                + "\"RepFieldB.html\" title=\"annotation in typeannos\">"
-                + "@RepFieldB</a>\n<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\" title="
-                + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.Integer i3</pre>",
+                "<div class=\"memberSignature\"><span class=\"returnType\">"
+                + "<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\" title=\"annotation in typeannos\">@RepTypeUseB</a> "
+                + "java.lang.Integer</span>&nbsp;<span class=\"memberName\">i2</span></div>",
 
-                "<pre><a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html"
-                + "\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href="
-                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
-                + "\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
-                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
-                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
-                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html"
-                + "\" title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.Integer i4</pre>",
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepFieldA.html\" title=\"annotation in typeannos\">@RepFieldA</a> "
+                + "<a href=\"RepFieldA.html\" title=\"annotation in typeannos\">@RepFieldA</a>\n"
+                + "<a href=\"RepFieldB.html\" title=\"annotation in typeannos\">@RepFieldB</a> "
+                + "<a href=\"RepFieldB.html\" title=\"annotation in typeannos\">@RepFieldB</a>\n"
+                + "</span><span class=\"returnType\"><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\" title=\"annotation in typeannos\">@RepTypeUseB</a> "
+                + "java.lang.Integer</span>&nbsp;<span class=\"memberName\">i3</span></div>",
 
-                "<pre>java.lang.String <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\" title="
-                + "\"annotation in typeannos\">@RepTypeUseB</a> [] <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\" title=\"annotation in typeannos\">"
-                + "@RepTypeUseB</a> [] sa</pre>");
+                "<div class=\"memberSignature\"><span class=\"annotations\">"
+                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">@RepAllContextsA</a> "
+                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n"
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a> "
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
+                + "</span><span class=\"returnType\"><a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a> "
+                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">@RepAllContextsA</a> "
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a> "
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a> "
+                + "java.lang.Integer</span>&nbsp;<span class=\"memberName\">i4</span></div>",
+
+                "<div class=\"memberSignature\"><span class=\"returnType\">java.lang.String "
+                + "<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\" title=\"annotation in typeannos\">@RepTypeUseB</a> [] "
+                + "<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\" title=\"annotation in typeannos\">@RepTypeUseB</a> []"
+                + "</span>&nbsp;<span class=\"memberName\">sa</span></div>");
 
         checkOutput("typeannos/RepeatingOnMethod.html", true,
                 "<code>(package private) java.lang.String</code></td>\n<th class=\"colSecond\" scope=\"row\">"
@@ -608,7 +629,7 @@
 
                 "<code><span class=\"memberNameLink\"><a href=\""
                 + "#test5(java.lang.String,java.lang.String...)\">test5</a></span>"
-                + "&#8203;(java.lang.String&nbsp;parameter,\n     java.lang.String <a href="
+                + "&#8203;(java.lang.String&nbsp;parameter,\njava.lang.String <a href="
                 + "\"RepTypeUseA.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseA</a> <a href=\"RepTypeUseA.html\" title="
                 + "\"annotation in typeannos\">@RepTypeUseA</a> <a href=\"RepTypeUseB.html"
@@ -616,69 +637,63 @@
                 + "\"RepTypeUseB.html\" title=\"annotation in typeannos\">"
                 + "@RepTypeUseB</a> ...&nbsp;vararg)</code>",
 
-                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
-                + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\""
-                + " title=\"annotation in typeannos\">@RepMethodB</a> <a href="
-                + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodB</a>\njava.lang.String&nbsp;test1()",
+                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a> "
+                + "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a>\n"
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a> "
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a>\n"
+                + "</span><span class=\"returnType\">java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">test1</span>()",
 
                 "<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\" "
-                + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String&nbsp;test2()",
+                + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</span>"
+                + "&nbsp;<span class=\"memberName\">test2</span>()",
 
-                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
-                + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html\" "
-                + "title=\"annotation in typeannos\">@RepMethodB</a> <a href="
-                + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodB</a>\n<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\" title="
-                + "\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String&nbsp;test3()",
+                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a> "
+                + "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a>\n"
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a> "
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a>\n"
+                + "</span><span class=\"returnType\"><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\" "
+                + "title=\"annotation in typeannos\">@RepTypeUseB</a> java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">test3</span>()",
 
-                "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
-                + "title=\"annotation in typeannos\">@RepAllContextsA</a>\n<a href="
-                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
-                + "title=\"annotation in typeannos\">@RepAllContextsB</a>\n<a href="
-                + "\"RepAllContextsA.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
-                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href="
-                + "\"RepAllContextsB.html\" title=\"annotation in typeannos\">"
-                + "@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
-                + "title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.String&nbsp;test4()",
+                "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">@RepAllContextsA</a> "
+                + "<a href=\"RepAllContextsA.html\" title=\"annotation in typeannos\">@RepAllContextsA</a>\n"
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a> "
+                + "<a href=\"RepAllContextsB.html\" title=\"annotation in typeannos\">@RepAllContextsB</a>\n"
+                + "</span><span class=\"returnType\"><a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsA.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsA</a> <a href=\"RepAllContextsB.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsB</a> <a href=\"RepAllContextsB.html\" "
+                + "title=\"annotation in typeannos\">@RepAllContextsB</a> java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">test4</span>()",
 
-                "java.lang.String&nbsp;test5&#8203;(<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\" "
-                + "title=\"annotation in typeannos\">@RepTypeUseB</a>&nbsp;RepeatingOnMethod&nbsp;"
-                + "this,\n                       <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> <a href="
-                + "\"RepParameterB.html\" title=\"annotation in typeannos\">"
-                + "@RepParameterB</a>\n                       java.lang.String&nbsp;parameter,\n"
-                + "                       <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> <a href=\"RepParameterB.html\" title="
-                + "\"annotation in typeannos\">@RepParameterB</a>\n                       "
-                + "java.lang.String <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\" title="
-                + "\"annotation in typeannos\">@RepTypeUseB</a> ...&nbsp;vararg)");
+                "java.lang.String</span>&nbsp;<span class=\"memberName\">test5</span>&#8203;("
+                + "<span class=\"arguments\"><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\" title=\"annotation in typeannos\">@RepTypeUseB</a>"
+                + "&nbsp;RepeatingOnMethod&nbsp;this,\n"
+                + "<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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String&nbsp;parameter,\n"
+                + "<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> "
+                + "<a href=\"RepParameterB.html\" title=\"annotation in typeannos\">@RepParameterB</a>\n"
+                + "java.lang.String <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\" title=\"annotation in typeannos\">"
+                + "@RepTypeUseB</a> ...&nbsp;vararg)");
 
         checkOutput("typeannos/RepeatingOnTypeParametersBoundsTypeArgumentsOnMethod.html", true,
                 "<code>(package private) &lt;T&gt;&nbsp;java.lang.String</code></td>\n"
@@ -699,7 +714,9 @@
                 + "<span class=\"memberNameLink\"><a href=\"#"
                 + "test()\">test</a></span>()</code>",
 
-                "java.lang.String&nbsp;test&#8203;(<a href=\"RepTypeUseA.html\" "
+                "<span class=\"returnType\">java.lang.String</span>&nbsp;"
+                + "<span class=\"memberName\">test</span>"
+                + "&#8203;(<span class=\"arguments\"><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="
@@ -713,11 +730,11 @@
                 + "title=\"annotation in typeannos\">@RepTypeUseB</a> T&gt;&nbsp;this)");
 
         checkOutput("typeannos/RepeatingOnVoidMethodDeclaration.html", true,
-                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodA</a> <a href=\"RepMethodA.html\" title="
-                + "\"annotation in typeannos\">@RepMethodA</a>\n<a href=\"RepMethodB.html"
-                + "\" title=\"annotation in typeannos\">@RepMethodB</a> <a href="
-                + "\"RepMethodB.html\" title=\"annotation in typeannos\">"
-                + "@RepMethodB</a>\nvoid&nbsp;test()");
+                "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a> "
+                + "<a href=\"RepMethodA.html\" title=\"annotation in typeannos\">@RepMethodA</a>\n"
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a> "
+                + "<a href=\"RepMethodB.html\" title=\"annotation in typeannos\">@RepMethodB</a>\n"
+                + "</span><span class=\"returnType\">void</span>&nbsp;"
+                + "<span class=\"memberName\">test</span>()");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java	Tue Jun 04 16:33:37 2019 +0200
@@ -54,7 +54,7 @@
         checkExit(Exit.OK);
 
         checkOutput("pkg/C.html", true,
-                "<td class=\"colFirst\"><code>&lt;W extends java.lang.String,&#8203;V extends "
+                "<td class=\"colFirst\"><code>&lt;W extends java.lang.String,&#8203;\nV extends "
                 + "java.util.List&gt;<br>java.lang.Object</code></td>",
                 "<code>&lt;T&gt;&nbsp;java.lang.Object</code>");
 
--- a/test/langtools/jdk/javadoc/doclet/testVisibleMembers/TestVisibleMembers.java	Tue Jun 04 16:20:42 2019 +0200
+++ b/test/langtools/jdk/javadoc/doclet/testVisibleMembers/TestVisibleMembers.java	Tue Jun 04 16:33:37 2019 +0200
@@ -272,7 +272,7 @@
 
         checkOrder("p/C.html",
                 "METHOD DETAIL",
-                "public", "void", "method()",
+                "public", "void", "method",
                 "See Also:",
                 "sub()",
                 "sub1()");
@@ -307,7 +307,7 @@
 
         checkOrder("p/C.html",
                 "METHOD DETAIL",
-                "public", "void", "method()", "See Also:", "sub()", "I.sub1()",
+                "public", "void", "method", "See Also:", "sub()", "I.sub1()",
                 "public", "void", "m", "Method in C. See", "I.length()"
                 );
 
@@ -411,10 +411,10 @@
 
         checkOrder("p/C.html",
                 "METHOD DETAIL",
-                "public", "void", "m()", "Method m in p.B",
-                "public", "void", "n()", "Method n in p.A",
-                "public", "void", "o()", "Description copied from class:", ">A<", "Method o in p.A",
-                "public", "void", "p()", "Method p in p.B",
+                "public", "void", "m", "Method m in p.B",
+                "public", "void", "n", "Method n in p.A",
+                "public", "void", "o", "Description copied from class:", ">A<", "Method o in p.A",
+                "public", "void", "p", "Method p in p.B",
                 "END OF CLASS DATA");
 
         checkOutput("p/C.html", false,
@@ -471,10 +471,10 @@
 
         checkOrder("p/C.html",
                 "METHOD DETAIL",
-                "public", "void", "m()", "Method m in p.B",
-                "public", "void", "n()", "Method n in p.A",
-                "public", "void", "o()", "Description copied from class:", ">A<", "Method o in p.A",
-                "public", "void", "p()", "Method p in p.B",
+                "public", "void", "m", "Method m in p.B",
+                "public", "void", "n", "Method n in p.A",
+                "public", "void", "o", "Description copied from class:", ">A<", "Method o in p.A",
+                "public", "void", "p", "Method p in p.B",
                 "END OF CLASS DATA");
 
         checkOutput("p/C.html", false,