From 90489c7c58ba09de2574f5c6b833daf2873266f2 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 14 Jun 2018 17:50:29 +0300 Subject: [PATCH] add javadoc for type parameter: insert brackets (IDEA-193915) --- .../javaDoc/JavaDocLocalInspectionBase.java | 1 + .../javaDoc/JavadocHighlightUtil.java | 13 +++---------- .../quickFix/javadocTags/afterMethodTypeParam.java | 9 +++++++++ .../quickFix/javadocTags/beforeMethodTypeParam.java | 8 ++++++++ 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/afterMethodTypeParam.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/beforeMethodTypeParam.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspectionBase.java index 4001db3f89d2..d54e8bda0086 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspectionBase.java @@ -305,6 +305,7 @@ public class JavaDocLocalInspectionBase extends LocalInspectionTool { } if (isTagRequired(METHOD_OPTIONS, "param")) { JavadocHighlightUtil.checkMissingParamTags(tags, method, docComment.getFirstChild(), holder); + JavadocHighlightUtil.checkMissingTypeParamTags(method, tags, docComment.getFirstChild(), holder); } if (isTagRequired(METHOD_OPTIONS, "throws")) { JavadocHighlightUtil.checkMissingThrowsTags(tags, method, docComment.getFirstChild(), holder); diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavadocHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavadocHighlightUtil.java index 0eb224b1ef0b..7c20c0ffc9c9 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavadocHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavadocHighlightUtil.java @@ -323,14 +323,14 @@ public class JavadocHighlightUtil { }); } - static void checkMissingTypeParamTags(@NotNull PsiClass psiClass, + static void checkMissingTypeParamTags(@NotNull PsiTypeParameterListOwner parameterListOwner, @NotNull PsiDocTag[] tags, @NotNull PsiElement toHighlight, @NotNull ProblemHolder holder) { - if (psiClass.hasTypeParameters()) { + if (parameterListOwner.hasTypeParameters()) { List absentParameters = null; - for (PsiTypeParameter typeParameter : psiClass.getTypeParameters()) { + for (PsiTypeParameter typeParameter : parameterListOwner.getTypeParameters()) { if (!hasTagForParameter(tags, typeParameter)) { (absentParameters = list(absentParameters)).add(typeParameter); } @@ -370,13 +370,6 @@ public class JavadocHighlightUtil { } } - for (PsiTypeParameter parameter : psiMethod.getTypeParameters()) { - if (!hasTagForParameter(tags, parameter)) { - (absentParameters = list(absentParameters)).add(parameter); - } - } - - if (absentParameters != null) { for (PsiNamedElement parameter : absentParameters) { String name = parameter.getName(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/afterMethodTypeParam.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/afterMethodTypeParam.java new file mode 100644 index 000000000000..fcb903ad7085 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/afterMethodTypeParam.java @@ -0,0 +1,9 @@ +// "Add tag @param " "true" +class a { +/** + * @param + */ +public void run() { + +} +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/beforeMethodTypeParam.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/beforeMethodTypeParam.java new file mode 100644 index 000000000000..8b34f86d3a9a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/javadocTags/beforeMethodTypeParam.java @@ -0,0 +1,8 @@ +// "Add tag @param " "true" +class a { +/** +*/ +public void run() { + +} +} \ No newline at end of file