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);