diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java index 061b05db6a9..2a4b6332f60 100644 --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java @@ -492,15 +492,21 @@ public class Checker extends DocTreePathScanner { case START_ELEMENT -> { if (top.tag.blockType == HtmlTag.BlockType.INLINE) { Name name = ((StartElementTree) top.tree).getName(); - env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.element", - treeName, name); + // Links may use block display style so issue warning instead of error + if ("a".equalsIgnoreCase(name.toString())) { + env.messages.warning(HTML, tree, "dc.tag.not.allowed.element.default.style", + treeName, name); + } else { + env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.element", + treeName, name); + } return; } } case LINK, LINK_PLAIN -> { String name = top.tree.getKind().tagName; - env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.tag", + env.messages.warning(HTML, tree, "dc.tag.not.allowed.tag.default.style", treeName, name); return; } diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint.properties b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint.properties index ad797dc107f..f199b181c37 100644 --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint.properties +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/resources/doclint.properties @@ -77,8 +77,8 @@ dc.tag.nested.tag=nested tag: {0} dc.tag.not.allowed.here = tag not allowed here: <{0}> dc.tag.not.allowed = element not allowed in documentation comments: <{0}> dc.tag.not.allowed.inline.element = block element not allowed within inline element <{1}>: {0} -dc.tag.not.allowed.inline.tag = block element not allowed within @{1}: {0} -dc.tag.not.allowed.inline.other = block element not allowed here: {0} +dc.tag.not.allowed.element.default.style = block element <{0}> not allowed within element <{1}> with default style +dc.tag.not.allowed.tag.default.style = block element <{0}> not allowed within @{1} with default style dc.tag.not.closed= element not closed: {0} dc.tag.p.in.pre= unexpected use of

inside

 element
 dc.tag.requires.heading = heading not found for 
diff --git a/test/langtools/tools/doclint/HtmlTagsTest.java b/test/langtools/tools/doclint/HtmlTagsTest.java
index cb0aa2eb984..b7463fc4a31 100644
--- a/test/langtools/tools/doclint/HtmlTagsTest.java
+++ b/test/langtools/tools/doclint/HtmlTagsTest.java
@@ -1,6 +1,6 @@
 /*
  * @test /nodynamiccopyright/
- * @bug 8004832 8247957
+ * @bug 8004832 8247957 8292157
  * @summary Add new doclint package
  * @modules jdk.javadoc/jdk.javadoc.internal.doclint
  * @build DocLintTester
@@ -32,6 +32,7 @@ public class HtmlTagsTest {
 
     /**
      *  

+ *

*/ public void not_allowed_inline() { } diff --git a/test/langtools/tools/doclint/HtmlTagsTest.out b/test/langtools/tools/doclint/HtmlTagsTest.out index 8e8b1441888..e95ca3e7c4e 100644 --- a/test/langtools/tools/doclint/HtmlTagsTest.out +++ b/test/langtools/tools/doclint/HtmlTagsTest.out @@ -19,35 +19,41 @@ HtmlTagsTest.java:34: error: block element not allowed within inline element tag *

^ -HtmlTagsTest.java:39: error: block element not allowed within @link: p +HtmlTagsTest.java:35: warning: block element

not allowed within element with default style + *

+ ^ +HtmlTagsTest.java:35: warning: empty

tag + *

+ ^ +HtmlTagsTest.java:40: warning: block element

not allowed within @link with default style * {@link java.lang.String

} ^ -HtmlTagsTest.java:40: error: block element not allowed within @link: p +HtmlTagsTest.java:41: warning: block element

not allowed within @link with default style * {@link java.lang.String

} ^ -HtmlTagsTest.java:45: error: invalid end tag: +HtmlTagsTest.java:46: error: invalid end tag: * alt ^ -HtmlTagsTest.java:50: error: end tag missing: +HtmlTagsTest.java:51: error: end tag missing: * ^ -HtmlTagsTest.java:55: error: unexpected end tag: +HtmlTagsTest.java:56: error: unexpected end tag: * ^ -HtmlTagsTest.java:55: warning: empty tag +HtmlTagsTest.java:56: warning: empty tag * ^ -HtmlTagsTest.java:60: error: text not allowed in

    element +HtmlTagsTest.java:61: error: text not allowed in
      element *
        text
      • ...
      ^ -HtmlTagsTest.java:65: error: tag not allowed here: +HtmlTagsTest.java:66: error: tag not allowed here: *
        text
      • ...
      ^ -HtmlTagsTest.java:70: error: text not allowed in
        element +HtmlTagsTest.java:71: error: text not allowed in
          element *
            &
          • ...
          ^ -HtmlTagsTest.java:75: error: text not allowed in
            element +HtmlTagsTest.java:76: error: text not allowed in
              element *
                *@/
              • ...
              ^ -15 errors -2 warnings +13 errors +6 warnings