--- old/make/CompileJavaModules.gmk 2019-03-11 13:54:54.878897371 -0700 +++ new/make/CompileJavaModules.gmk 2019-03-11 13:54:54.702889121 -0700 @@ -38,7 +38,7 @@ ################################################################################ # Module specific build settings -java.base_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' -XDstringConcat=inline +java.base_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*' -XDstringConcat=inline java.base_COPY += .icu .dat .spp content-types.properties hijrah-config-islamic-umalqura.properties java.base_CLEAN += intrinsic.properties @@ -70,7 +70,7 @@ ################################################################################ -java.compiler_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' +java.compiler_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' ################################################################################ @@ -79,7 +79,7 @@ ################################################################################ -java.desktop_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference \ +java.desktop_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility \ '-Xdoclint/package:java.*,javax.*' -Xlint:exports \ --doclint-format html4 java.desktop_COPY += .gif .png .wav .txt .xml .css .pf @@ -220,15 +220,15 @@ ################################################################################ -java.instrument_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' +java.instrument_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' ################################################################################ -java.logging_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' +java.logging_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*' ################################################################################ -java.management_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference '-Xdoclint/package:java.*,javax.*' +java.management_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-reference,-accessibility '-Xdoclint/package:java.*,javax.*' ################################################################################ @@ -249,7 +249,7 @@ ################################################################################ -java.sql.rowset_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' +java.sql.rowset_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' java.sql.rowset_CLEAN_FILES += $(wildcard \ $(TOPDIR)/src/java.sql.rowset/share/classes/com/sun/rowset/*.properties \ $(TOPDIR)/src/java.sql.rowset/share/classes/javax/sql/rowset/*.properties) @@ -263,14 +263,14 @@ ################################################################################ -java.xml_ADD_JAVAC_FLAGS += -Xdoclint:all/protected \ +java.xml_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility \ '-Xdoclint/package:$(call CommaList, javax.xml.catalog javax.xml.datatype \ javax.xml.transform javax.xml.validation javax.xml.xpath)' java.xml_CLEAN += .properties ################################################################################ -java.naming_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' -Xlint:-exports +java.naming_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' -Xlint:-exports java.naming_CLEAN += jndiprovider.properties ################################################################################ @@ -279,7 +279,7 @@ ################################################################################ -java.smartcardio_ADD_JAVAC_FLAGS += -Xdoclint:all/protected '-Xdoclint/package:java.*,javax.*' +java.smartcardio_ADD_JAVAC_FLAGS += -Xdoclint:all/protected,-accessibility '-Xdoclint/package:java.*,javax.*' ################################################################################ --- old/src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java 2019-03-11 13:54:55.418922683 -0700 +++ new/src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java 2019-03-11 13:54:55.246914621 -0700 @@ -61,7 +61,6 @@ import com.sun.source.doctree.IdentifierTree; import com.sun.source.doctree.IndexTree; import com.sun.source.doctree.InheritDocTree; -import com.sun.source.doctree.InlineTagTree; import com.sun.source.doctree.LinkTree; import com.sun.source.doctree.LiteralTree; import com.sun.source.doctree.ParamTree; @@ -140,16 +139,15 @@ } private final Deque tagStack; // TODO: maybe want to record starting tree as well - private HtmlTag currHeaderTag; + private HtmlTag currHeadingTag; - private final int implicitHeaderLevel; + private int implicitHeadingRank; // Checker(Env env) { this.env = Assert.checkNonNull(env); tagStack = new LinkedList<>(); - implicitHeaderLevel = env.implicitHeaderLevel; } public Void scan(DocCommentTree tree, TreePath p) { @@ -188,7 +186,7 @@ } tagStack.clear(); - currHeaderTag = null; + currHeadingTag = null; foundParams.clear(); foundThrows.clear(); @@ -196,6 +194,37 @@ foundReturn = false; hasNonWhitespaceText = false; + switch (p.getLeaf().getKind()) { + // the following are for declarations that have their own top-level page, + // and so the doc comment comes after the

page title. + case MODULE: + case PACKAGE: + case CLASS: + case INTERFACE: + case ENUM: + case ANNOTATION_TYPE: + implicitHeadingRank = 1; + break; + + // this is for html files + // ... if it is a legacy package.html, the doc comment comes after the

page title + // ... otherwise, (e.g. overview file and doc-files/*.html files) no additional headings are inserted + case COMPILATION_UNIT: + implicitHeadingRank = fo.isNameCompatible("package", JavaFileObject.Kind.HTML) ? 1 : 0; + break; + + // the following are for member declarations, which appear in the page + // for the enclosing type, and so appear after the

"Members" + // aggregate heading and the specific

"Member signature" heading. + case METHOD: + case VARIABLE: + implicitHeadingRank = 3; + break; + + default: + Assert.error("unexpected tree kind: " + p.getLeaf().getKind() + " " + fo); + } + scan(new DocTreePath(p, tree), null); if (!isOverridingMethod) { @@ -328,9 +357,9 @@ // tag specific checks switch (t) { - // check for out of sequence headers, such as

...

...

+ // check for out of sequence headings, such as

...

...

case H1: case H2: case H3: case H4: case H5: case H6: - checkHeader(tree, t); + checkHeading(tree, t); break; } @@ -446,23 +475,27 @@ env.messages.error(HTML, tree, "dc.tag.not.allowed.here", treeName); } - private void checkHeader(StartElementTree tree, HtmlTag tag) { + private void checkHeading(StartElementTree tree, HtmlTag tag) { // verify the new tag - if (getHeaderLevel(tag) > getHeaderLevel(currHeaderTag) + 1) { - if (currHeaderTag == null) { - env.messages.error(ACCESSIBILITY, tree, "dc.tag.header.sequence.1", tag); + if (getHeadingRank(tag) > getHeadingRank(currHeadingTag) + 1) { + if (currHeadingTag == null) { + env.messages.error(ACCESSIBILITY, tree, "dc.tag.heading.sequence.1", + tag, implicitHeadingRank); } else { - env.messages.error(ACCESSIBILITY, tree, "dc.tag.header.sequence.2", - tag, currHeaderTag); + env.messages.error(ACCESSIBILITY, tree, "dc.tag.heading.sequence.2", + tag, currHeadingTag); } + } else if (getHeadingRank(tag) <= implicitHeadingRank) { + env.messages.error(ACCESSIBILITY, tree, "dc.tag.heading.sequence.3", + tag, implicitHeadingRank); } - currHeaderTag = tag; + currHeadingTag = tag; } - private int getHeaderLevel(HtmlTag tag) { + private int getHeadingRank(HtmlTag tag) { if (tag == null) - return implicitHeaderLevel; + return implicitHeadingRank; switch (tag) { case H1: return 1; case H2: return 2; @@ -666,11 +699,11 @@ break; case OBSOLETE: - env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete", name); + env.messages.warning(HTML, tree, "dc.attr.obsolete", name); break; case USE_CSS: - env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete.use.css", name); + env.messages.warning(HTML, tree, "dc.attr.obsolete.use.css", name); break; case HTML5: --- old/src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java 2019-03-11 13:54:56.082953806 -0700 +++ new/src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java 2019-03-11 13:54:55.870943869 -0700 @@ -80,7 +80,6 @@ public static final String XMSGS_OPTION = "-Xmsgs"; public static final String XMSGS_CUSTOM_PREFIX = "-Xmsgs:"; private static final String STATS = "-stats"; - public static final String XIMPLICIT_HEADERS = "-XimplicitHeaders:"; public static final String XCUSTOM_TAGS_PREFIX = "-XcustomTags:"; public static final String XHTML_VERSION_PREFIX = "-XhtmlVersion:"; public static final String XCHECK_PACKAGE = "-XcheckPackage:"; @@ -289,9 +288,6 @@ env.messages.setOptions(null); } else if (arg.startsWith(XMSGS_CUSTOM_PREFIX)) { env.messages.setOptions(arg.substring(arg.indexOf(":") + 1)); - } else if (arg.matches(XIMPLICIT_HEADERS + "[1-6]")) { - char ch = arg.charAt(arg.length() - 1); - env.setImplicitHeaders(Character.digit(ch, 10)); } else if (arg.startsWith(XCUSTOM_TAGS_PREFIX)) { env.setCustomTags(arg.substring(arg.indexOf(":") + 1)); } else if (arg.startsWith(XHTML_VERSION_PREFIX)) { --- old/src/jdk.compiler/share/classes/com/sun/tools/doclint/Env.java 2019-03-11 13:54:56.738984548 -0700 +++ new/src/jdk.compiler/share/classes/com/sun/tools/doclint/Env.java 2019-03-11 13:54:56.522974426 -0700 @@ -93,8 +93,6 @@ /** Message handler. */ final Messages messages; - int implicitHeaderLevel = 0; - Set customTags; Set includePackages; @@ -153,10 +151,6 @@ java_lang_Void = elements.getTypeElement("java.lang.Void").asType(); } - void setImplicitHeaders(int n) { - implicitHeaderLevel = n; - } - void setCustomTags(String cTags) { customTags = new LinkedHashSet<>(); for (String s : cTags.split(DocLint.SEPARATOR)) { --- old/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint.properties 2019-03-11 13:54:57.391015101 -0700 +++ new/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint.properties 2019-03-11 13:54:57.175004979 -0700 @@ -63,8 +63,9 @@ dc.tag.a.within.a = {0} tag, which expands to , within dc.tag.end.not.permitted = invalid end tag: dc.tag.end.unexpected = unexpected end tag: -dc.tag.header.sequence.1 = header used out of sequence: <{0}> -dc.tag.header.sequence.2 = header used out of sequence: <{0}> +dc.tag.heading.sequence.1 = heading used out of sequence: <{0}>, compared to implicit preceding heading: +dc.tag.heading.sequence.2 = heading used out of sequence: <{0}>, compared to previous heading: <{1}> +dc.tag.heading.sequence.3 = unexpected heading used: <{0}>, compared to implicit preceding heading: dc.tag.nested.not.allowed=nested tag not allowed: <{0}> dc.tag.not.allowed.here = tag not allowed here: <{0}> dc.tag.not.allowed = element not allowed in documentation comments: <{0}> --- old/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java 2019-03-11 13:54:58.043045650 -0700 +++ new/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java 2019-03-11 13:54:57.831035717 -0700 @@ -852,9 +852,6 @@ doclintOpts.add(DocLint.XHTML_VERSION_PREFIX + format); } - // standard doclet normally generates H1, H2, - // so for now, allow user comments to assume that - doclintOpts.add(DocLint.XIMPLICIT_HEADERS + "2"); return List.from(doclintOpts.toArray(new String[doclintOpts.size()])); } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java 2019-03-11 13:54:58.803081255 -0700 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java 2019-03-11 13:54:58.587071136 -0700 @@ -141,8 +141,6 @@ JavacTask t = BasicJavacTask.instance(toolEnv.context); doclint = new DocLint(); - // standard doclet normally generates H1, H2 - doclintOpts.add(DocLint.XIMPLICIT_HEADERS + "2"); doclint.init(t, doclintOpts.toArray(new String[doclintOpts.size()]), false); } --- old/test/langtools/tools/doclint/AccessibilityTest.java 2019-03-11 13:54:59.559116669 -0700 +++ new/test/langtools/tools/doclint/AccessibilityTest.java 2019-03-11 13:54:59.339106364 -0700 @@ -10,17 +10,37 @@ /** */ public class AccessibilityTest { + /** + *

...

+ */ + public class Bad_H1 { } + + /** + *

...

+ */ + public class Missing_H2 { } /** *

...

+ *

...

*/ - public void missing_h1() { } + public class Missing_H3 { } + + /** + *

...

+ */ + public void bad_h2() { } + + /** + *

...

+ */ + public void missing_h3() { } /** - *

...

*

...

+ *
...
*/ - public void missing_h2() { } + public void missing_h5() { } /** * --- old/test/langtools/tools/doclint/AccessibilityTest.out 2019-03-11 13:55:00.187146083 -0700 +++ new/test/langtools/tools/doclint/AccessibilityTest.out 2019-03-11 13:54:59.971135966 -0700 @@ -1,13 +1,25 @@ -AccessibilityTest.java:15: error: header used out of sequence:

+AccessibilityTest.java:14: error: unexpected heading used:

, compared to implicit preceding heading:

+ *

...

+ ^ +AccessibilityTest.java:19: error: heading used out of sequence:

, compared to implicit preceding heading:

+ *

...

+ ^ +AccessibilityTest.java:25: error: heading used out of sequence:

, compared to previous heading:

+ *

...

+ ^ +AccessibilityTest.java:30: error: unexpected heading used:

, compared to implicit preceding heading:

*

...

^ -AccessibilityTest.java:21: error: header used out of sequence:

+AccessibilityTest.java:40: error: unexpected heading used:

, compared to implicit preceding heading:

*

...

^ -AccessibilityTest.java:26: error: no "alt" attribute for image +AccessibilityTest.java:41: error: heading used out of sequence:
, compared to previous heading:

+ *

...
+ ^ +AccessibilityTest.java:46: error: no "alt" attribute for image * ^ -AccessibilityTest.java:41: error: no summary or caption for table +AccessibilityTest.java:61: error: no summary or caption for table *
head
data
^ -4 errors +8 errors --- old/test/langtools/tools/doclint/html/BlockTagsTest.java 2019-03-11 13:55:00.831176243 -0700 +++ new/test/langtools/tools/doclint/html/BlockTagsTest.java 2019-03-11 13:55:00.615166127 -0700 @@ -28,7 +28,7 @@ * @library .. * @modules jdk.compiler/com.sun.tools.doclint * @build DocLintTester - * @run main DocLintTester -Xmsgs BlockTagsTest.java + * @run main DocLintTester -Xmsgs:-accessibility BlockTagsTest.java */ /** */ --- old/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java 2019-03-11 13:55:01.571210895 -0700 +++ new/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java 2019-03-11 13:55:01.355200780 -0700 @@ -83,7 +83,7 @@ * * imgTest *
- *

Topics

+ *

Topics

*

Aria attribute test

*

Label test

*
@@ -98,8 +98,8 @@ *

Teletype text

*
*
- *

Section

- *

Another heading

+ *

Section

+ *
Another heading
*
* hgroup no longer supported in HTML5. *
@@ -113,12 +113,12 @@ /** *
*

Testing section tag

- *

Section

+ *

Section

* Section text. *
*
*

Testing article tag

- *

Article

+ *
Article
* Article text. *
*
@@ -133,7 +133,7 @@ * Main content * * *
    --- old/test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.java 2019-03-11 13:55:02.427250973 -0700 +++ new/test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.java 2019-03-11 13:55:02.215241048 -0700 @@ -13,6 +13,6 @@ /** * valid * duplicate - *

    duplicate

    + *

    duplicate

    */ public class AnchorAlreadyDefined { } --- old/test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.out 2019-03-11 13:55:03.279290859 -0700 +++ new/test/langtools/tools/doclint/tidy/AnchorAlreadyDefined.out 2019-03-11 13:55:03.067280936 -0700 @@ -2,6 +2,6 @@ * duplicate ^ AnchorAlreadyDefined.java:16: error: anchor already defined: "here" - *

    duplicate

    + *

    duplicate

    ^ 2 errors --- old/test/langtools/tools/doclint/tidy/MissingTag.java 2019-03-11 13:55:04.135330927 -0700 +++ new/test/langtools/tools/doclint/tidy/MissingTag.java 2019-03-11 13:55:03.919320818 -0700 @@ -13,6 +13,6 @@ /** *

    - *

    text

    + *

    text

    */ public class MissingTag { } --- old/test/langtools/tools/doclint/tidy/MissingTag.out 2019-03-11 13:55:04.999371363 -0700 +++ new/test/langtools/tools/doclint/tidy/MissingTag.out 2019-03-11 13:55:04.779361067 -0700 @@ -2,6 +2,6 @@ *

    ^ MissingTag.java:16: error: end tag missing:
    - *

    text

    + *

    text

    ^ 2 errors --- old/test/langtools/jdk/javadoc/tool/doclint/ImplicitHeadersTest.java 2019-03-11 13:55:05.863411793 -0700 +++ /dev/null 2018-10-31 16:05:59.992608259 -0700 @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2013, 2016, 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 8006346 - * @summary doclint should make allowance for headers generated by standard doclet - * @modules jdk.javadoc/jdk.javadoc.internal.tool - */ - -import java.io.File; - -/** - *

    Header

    - */ -public class ImplicitHeadersTest { - public static void main(String... args) { - File testSrc = new File(System.getProperty("test.src")); - File testFile = new File(testSrc, ImplicitHeadersTest.class.getSimpleName() + ".java"); - String[] javadocArgs = { "-d", "out", testFile.getPath() }; - int rc = jdk.javadoc.internal.tool.Main.execute(javadocArgs); - if (rc != 0) - throw new Error("unexpected exit: rc=" + rc); - } -} - --- /dev/null 2018-10-31 16:05:59.992608259 -0700 +++ new/test/langtools/jdk/javadoc/tool/doclint/ImplicitHeadingsTest.java 2019-03-11 13:55:05.535396445 -0700 @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2013, 2016, 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 8006346 + * @summary doclint should make allowance for headings generated by standard doclet + * @modules jdk.javadoc/jdk.javadoc.internal.tool + */ + +import java.io.File; + +/** + *

    Class heading

    + */ +public class ImplicitHeadingsTest { + /** + *

    Method heading

    + * @param args command-line args + */ + public static void main(String... args) { + File testSrc = new File(System.getProperty("test.src")); + File testFile = new File(testSrc, ImplicitHeadingsTest.class.getSimpleName() + ".java"); + String[] javadocArgs = { "-d", "out", testFile.getPath() }; + int rc = jdk.javadoc.internal.tool.Main.execute(javadocArgs); + if (rc != 0) + throw new Error("unexpected exit: rc=" + rc); + } +} + --- old/test/langtools/tools/javac/doclint/ImplicitHeadersTest.java 2019-03-11 13:55:06.607446603 -0700 +++ /dev/null 2018-10-31 16:05:59.992608259 -0700 @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2013, 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 8006346 - * @summary doclint should make allowance for headers generated by standard doclet - * @compile -Xdoclint:all/public ImplicitHeadersTest.java - */ - -/** - *

    Header

    - */ -public class ImplicitHeadersTest { } - --- /dev/null 2018-10-31 16:05:59.992608259 -0700 +++ new/test/langtools/tools/javac/doclint/ImplicitHeadingsTest.java 2019-03-11 13:55:06.291431819 -0700 @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2013, 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 8006346 + * @summary doclint should make allowance for headings generated by standard doclet + * @compile -Xdoclint:all/public ImplicitHeadingsTest.java + */ + +/** + *

    Class heading

    + */ +public class ImplicitHeadingsTest { + /** + *

    Method heading

    + */ + public void m() { } +} +