diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/javadoc/NotJavadoc.java b/core/src/main/java/com/google/errorprone/bugpatterns/javadoc/NotJavadoc.java index bdd6a4c9435..83dbc4a57a3 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/javadoc/NotJavadoc.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/javadoc/NotJavadoc.java @@ -76,8 +76,8 @@ public Description matchCompilationUnit(CompilationUnitTree tree, VisitorState s } var message = seeminglyJavadocableTrees.contains(token.pos()) - ? "This comment seems to be attached to a method or class, but methods and classes" - + " nested within methods cannot be documented with Javadoc." + ? "Local classes (or methods within local classes) cannot be documented with" + + " Javadoc." : message(); state.reportMatch( buildDescription(getDiagnosticPosition(comment.getSourcePos(0), tree)) diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/javadoc/NotJavadocTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/javadoc/NotJavadocTest.java index 403c011f1a5..f921209ac2e 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/javadoc/NotJavadocTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/javadoc/NotJavadocTest.java @@ -63,7 +63,7 @@ public void nestedClass() { """ class Test { void test() { - // BUG: Diagnostic contains: nested + // BUG: Diagnostic contains: Local classes /** Not Javadoc. */ class A {} } @@ -72,6 +72,25 @@ class A {} .doTest(); } + @Test + public void nestedClassWithMethod() { + // TODO(kak): we should also fix the "javadocs" on the method inside the local class + compilationHelper + .addSourceLines( + "Test.java", + """ + class Test { + void test() { + class A { + /** Not Javadoc. */ + void method() {} + } + } + } + """) + .doTest(); + } + @Test public void doubleJavadoc() { helper @@ -97,17 +116,24 @@ public void notJavadocOnLocalClass() { class Test { void test() { /** Not Javadoc. */ - class A {} + class A { + /** Not Javadoc. */ + void method() {} + } } } """) + // TODO(kak): we should also fix the "javadocs" on the method inside the local class .addOutputLines( "Test.java", """ class Test { void test() { /* Not Javadoc. */ - class A {} + class A { + /** Not Javadoc. */ + void method() {} + } } } """)