summaryrefslogtreecommitdiff
path: root/java/java-analysis-impl/src/com/intellij/codeInspection
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-analysis-impl/src/com/intellij/codeInspection')
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/JavaSuppressionUtil.java12
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java14
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java3
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/javaDoc/JavaDocLocalInspectionBase.java21
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrows.java5
5 files changed, 41 insertions, 14 deletions
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/JavaSuppressionUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/JavaSuppressionUtil.java
index 52cb18dc9131..1751468084dd 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/JavaSuppressionUtil.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/JavaSuppressionUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@ import com.intellij.psi.javadoc.PsiDocTag;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
+import gnu.trove.THashSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -42,14 +43,13 @@ import javax.annotation.Generated;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.regex.Matcher;
public class JavaSuppressionUtil {
public static final String SUPPRESS_INSPECTIONS_ANNOTATION_NAME = "java.lang.SuppressWarnings";
public static boolean alreadyHas14Suppressions(@NotNull PsiDocCommentOwner commentOwner) {
final PsiDocComment docComment = commentOwner.getDocComment();
- return docComment != null && docComment.findTagByName(SuppressionUtil.SUPPRESS_INSPECTIONS_TAG_NAME) != null;
+ return docComment != null && docComment.findTagByName(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME) != null;
}
@Nullable
@@ -63,7 +63,7 @@ public class JavaSuppressionUtil {
else if (element instanceof PsiReferenceExpression) {
final PsiElement psiElement = ((PsiReferenceExpression)element).resolve();
if (psiElement instanceof PsiVariableEx) {
- final Object val = ((PsiVariableEx)psiElement).computeConstantValue(new HashSet<PsiVariable>());
+ final Object val = ((PsiVariableEx)psiElement).computeConstantValue(new THashSet<PsiVariable>());
if (val instanceof String) {
return (String)val;
}
@@ -150,7 +150,7 @@ public class JavaSuppressionUtil {
}
}
if (docComment != null) {
- PsiDocTag inspectionTag = docComment.findTagByName(SuppressionUtil.SUPPRESS_INSPECTIONS_TAG_NAME);
+ PsiDocTag inspectionTag = docComment.findTagByName(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME);
if (inspectionTag != null) {
final PsiElement[] dataElements = inspectionTag.getDataElements();
for (PsiElement dataElement : dataElements) {
@@ -181,7 +181,7 @@ public class JavaSuppressionUtil {
if (element instanceof PsiDocCommentOwner) {
PsiDocComment docComment = ((PsiDocCommentOwner)element).getDocComment();
if (docComment != null) {
- PsiDocTag inspectionTag = docComment.findTagByName(SuppressionUtil.SUPPRESS_INSPECTIONS_TAG_NAME);
+ PsiDocTag inspectionTag = docComment.findTagByName(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME);
if (inspectionTag != null) {
String valueText = "";
for (PsiElement dataElement : inspectionTag.getDataElements()) {
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java
index d04ef1bbb295..d4beda08c875 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/StreamApiMigrationInspection.java
@@ -275,10 +275,7 @@ public class StreamApiMigrationInspection extends BaseJavaBatchLocalInspectionTo
final PsiIfStatement ifStmt = extractIfStatement(body);
String foreEachText = wrapInBlock(body);
- String iterated = iteratedValue instanceof PsiCallExpression ||
- iteratedValue instanceof PsiReferenceExpression ||
- iteratedValue instanceof PsiQualifiedExpression ||
- iteratedValue instanceof PsiParenthesizedExpression ? iteratedValue.getText() : "(" + iteratedValue.getText() + ")";
+ String iterated = getIteratedValueText(iteratedValue);
if (ifStmt != null) {
final PsiExpression condition = ifStmt.getCondition();
if (condition != null) {
@@ -359,7 +356,7 @@ public class StreamApiMigrationInspection extends BaseJavaBatchLocalInspectionTo
final PsiIfStatement ifStatement = extractIfStatement(body);
final PsiMethodCallExpression methodCallExpression = extractAddCall(body);
- String iteration = iteratedValue.getText() + ".stream()";
+ String iteration = getIteratedValueText(iteratedValue) + ".stream()";
if (ifStatement != null) {
final PsiExpression condition = ifStatement.getCondition();
if (condition != null) {
@@ -443,6 +440,13 @@ public class StreamApiMigrationInspection extends BaseJavaBatchLocalInspectionTo
}
}
+ private static String getIteratedValueText(PsiExpression iteratedValue) {
+ return iteratedValue instanceof PsiCallExpression ||
+ iteratedValue instanceof PsiReferenceExpression ||
+ iteratedValue instanceof PsiQualifiedExpression ||
+ iteratedValue instanceof PsiParenthesizedExpression ? iteratedValue.getText() : "(" + iteratedValue.getText() + ")";
+ }
+
public static PsiIfStatement extractIfStatement(PsiStatement body) {
PsiIfStatement ifStmt = null;
if (body instanceof PsiIfStatement) {
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java
index 429bd6281eed..3582ce1a293c 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/canBeFinal/CanBeFinalInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -295,6 +295,7 @@ public class CanBeFinalInspection extends GlobalJavaBatchInspectionTool {
final PsiModifierList modifierList = psiElement.getModifierList();
LOG.assertTrue(modifierList != null);
modifierList.setModifierProperty(PsiModifier.FINAL, true);
+ modifierList.setModifierProperty(PsiModifier.VOLATILE, false);
}
catch (IncorrectOperationException e) {
LOG.error(e);
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 33cd0040462b..5d6c4bcb59a1 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
@@ -65,6 +65,7 @@ public class JavaDocLocalInspectionBase extends BaseJavaBatchLocalInspectionTool
}
@NonNls private static final String IGNORE_ACCESSORS_ATTR_NAME = "IGNORE_ACCESSORS";
+ @NonNls private static final String IGNORE_DUPLICATED_THROWS_TAGS_ATTR_NAME = "IGNORE_DUPLICATED_THROWS_TAGS";
public static class Options implements JDOMExternalizable {
@NonNls public String ACCESS_JAVADOC_REQUIRED_FOR = NONE;
@@ -95,7 +96,18 @@ public class JavaDocLocalInspectionBase extends BaseJavaBatchLocalInspectionTool
@NonNls public Options FIELD_OPTIONS = new Options("none", "");
public boolean IGNORE_DEPRECATED = false;
public boolean IGNORE_JAVADOC_PERIOD = true;
+ @Deprecated
public boolean IGNORE_DUPLICATED_THROWS = false;
+
+ private boolean myIgnoreDuplicatedThrows = true;
+ public boolean getIgnoreDuplicatedThrows() {
+ return myIgnoreDuplicatedThrows;
+ }
+
+ public void setIgnoreDuplicatedThrows(boolean ignoreDuplicatedThrows) {
+ myIgnoreDuplicatedThrows = ignoreDuplicatedThrows;
+ }
+
public boolean IGNORE_POINT_TO_ITSELF = false;
public String myAdditionalJavadocTags = "";
@@ -126,6 +138,9 @@ public class JavaDocLocalInspectionBase extends BaseJavaBatchLocalInspectionTool
option.setAttribute("value", String.valueOf(true));
node.addContent(option);
}
+ if (!myIgnoreDuplicatedThrows) {
+ node.addContent(new Element(IGNORE_DUPLICATED_THROWS_TAGS_ATTR_NAME).setAttribute("value", String.valueOf(false)));
+ }
if (!PACKAGE_OPTIONS.ACCESS_JAVADOC_REQUIRED_FOR.equals("none") || !PACKAGE_OPTIONS.REQUIRED_TAGS.isEmpty()) {
PACKAGE_OPTIONS.writeExternal(node);
}
@@ -138,6 +153,10 @@ public class JavaDocLocalInspectionBase extends BaseJavaBatchLocalInspectionTool
if (ignoreAccessorsTag != null) {
myIgnoreSimpleAccessors = Boolean.parseBoolean(ignoreAccessorsTag.getAttributeValue("value"));
}
+ Element ignoreDupThrowsTag = node.getChild(IGNORE_DUPLICATED_THROWS_TAGS_ATTR_NAME);
+ if (ignoreDupThrowsTag != null) {
+ myIgnoreDuplicatedThrows = Boolean.parseBoolean(ignoreDupThrowsTag.getAttributeValue("value"));
+ }
PACKAGE_OPTIONS.readExternal(node);
}
@@ -1000,7 +1019,7 @@ public class JavaDocLocalInspectionBase extends BaseJavaBatchLocalInspectionTool
}
}
}
- else if (!IGNORE_DUPLICATED_THROWS && ("throws".equals(tag.getName()) || "exception".equals(tag.getName()))) {
+ else if (!myIgnoreDuplicatedThrows && ("throws".equals(tag.getName()) || "exception".equals(tag.getName()))) {
PsiDocTagValue value = tag.getValueElement();
if (value != null) {
final PsiElement firstChild = value.getFirstChild();
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrows.java b/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrows.java
index 6c611f707d6c..ff1f366c42e5 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrows.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/unneededThrows/RedundantThrows.java
@@ -294,7 +294,10 @@ public class RedundantThrows extends GlobalJavaBatchInspectionTool {
if (refMethod != null) {
for (RefMethod refDerived : refMethod.getDerivedMethods()) {
- removeException(refDerived, exceptionType, refsToDelete, (PsiMethod)refDerived.getElement());
+ PsiModifierListOwner method = refDerived.getElement();
+ if (method != null) {
+ removeException(refDerived, exceptionType, refsToDelete, (PsiMethod)method);
+ }
}
} else {
final Query<Pair<PsiMethod,PsiMethod>> query = AllOverridingMethodsSearch.search(psiMethod.getContainingClass());