diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocUtil.java b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocUtil.java index 6c5f46c47a30..ec8cf784ad08 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocUtil.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocUtil.java @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.javadoc.PsiDocComment; +import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.TypeConversionUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NonNls; @@ -261,7 +262,7 @@ public class JavaDocUtil { shortName = "null"; } PsiClass containingClass = aClass.getContainingClass(); - while (containingClass != null && containingClass.isPhysical()) { + while (containingClass != null && containingClass.isPhysical() && !PsiUtil.isLocalOrAnonymousClass(containingClass)) { shortName = containingClass.getName() + "." + shortName; containingClass = containingClass.getContainingClass(); } diff --git a/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.html b/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.html new file mode 100644 index 000000000000..1aea5b9c6065 --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.html @@ -0,0 +1,2 @@ +
class Foo
+extends Object
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.java b/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.java
new file mode 100644
index 000000000000..1160a1f77546
--- /dev/null
+++ b/java/java-tests/testData/codeInsight/javadocIG/localClassInsideAnonymous.java
@@ -0,0 +1,8 @@
+class Test {
+ Object obj = new Object() {
+ class Foo {
+ }
+
+ Foo x;
+ };
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
index 362352685e42..eb2c7d97ab5a 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/javadoc/JavaDocInfoGeneratorTest.java
@@ -225,6 +225,14 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase {
doTestLambdaParameter();
}
+ public void testLocalClassInsideAnonymous() throws Exception {
+ PsiClass testClass = getTestClass();
+ PsiExpression initializer = testClass.getFields()[0].getInitializer();
+ assertInstanceOf(initializer, PsiNewExpression.class);
+ PsiClass localClass = ((PsiNewExpression)initializer).getAnonymousClass().getInnerClasses()[0];
+ verifyJavaDoc(localClass);
+ }
+
private void doTestClass() throws Exception {
PsiClass psiClass = getTestClass();
verifyJavaDoc(psiClass);