From f52ceb369ba2ec485062fb09182317dadb594a9b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 18 Nov 2014 17:09:11 +0100 Subject: [PATCH] do not search for lambda parameter javadoc --- .../javadoc/JavaDocInfoGenerator.java | 8 ++++---- .../codeInsight/javadocIG/lambdaParameter.html | 1 + .../codeInsight/javadocIG/lambdaParameter.java | 16 ++++++++++++++++ .../javadoc/JavaDocInfoGeneratorTest.java | 11 +++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html create mode 100644 java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.java diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index e478330b90f8..1c023d6f1797 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -854,13 +854,13 @@ public class JavaDocInfoGenerator { buffer.append(""); buffer.append(""); - final PsiMethod method = PsiTreeUtil.getParentOfType(parameter, PsiMethod.class); + final PsiElement method = PsiTreeUtil.getParentOfType(parameter, PsiMethod.class, PsiLambdaExpression.class); - if (method != null) { - final PsiDocComment docComment = getDocComment(method); + if (method instanceof PsiMethod) { + final PsiDocComment docComment = getDocComment((PsiMethod)method); if (docComment != null) { final Pair> tagInfoProvider = - findDocTag(docComment.getTags(), parameter.getName(), method); + findDocTag(docComment.getTags(), parameter.getName(), (PsiMethod)method); if (tagInfoProvider != null) { PsiElement[] elements = tagInfoProvider.first.getDataElements(); diff --git a/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html new file mode 100644 index 000000000000..31697926bc91 --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.html @@ -0,0 +1 @@ +
int a
\ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.java b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.java new file mode 100644 index 000000000000..1231813ee9df --- /dev/null +++ b/java/java-tests/testData/codeInsight/javadocIG/lambdaParameter.java @@ -0,0 +1,16 @@ +class Test { + interface I { + String m(int a); + } + + /** + * @param a not my wrong javadoc + */ + public String getY() { + I i = (a) -> { + return null; + }; + return null; + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java index 202388ea5901..bb132e19fd08 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/javadoc/JavaDocInfoGeneratorTest.java @@ -165,6 +165,10 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { assertEquals(exampleHtmlFileText(getTestName(true)), StringUtil.convertLineSeparators(docInfo.trim())); } + public void testLambdaParameter() throws Exception { + doTestLamabdaParameter(); + } + private void doTestField() throws Exception { PsiClass psiClass = getTestClass(); PsiField field = psiClass.getFields() [0]; @@ -177,6 +181,13 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase { verifyJavaDoc(method); } + private void doTestLamabdaParameter() throws Exception { + PsiClass psiClass = getTestClass(); + final PsiLambdaExpression lambdaExpression = PsiTreeUtil.findChildOfType(psiClass, PsiLambdaExpression.class); + assertNotNull(lambdaExpression); + verifyJavaDoc(lambdaExpression.getParameterList().getParameters()[0]); + } + private PsiClass getTestClass() throws Exception{ configureByFile("/codeInsight/javadocIG/" + getTestName(true) + ".java"); return ((PsiJavaFile)myFile).getClasses() [0];