diff options
Diffstat (limited to 'java/java-analysis-impl/src/com/intellij/codeInspection')
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()); |