Commit 37570506 authored by Bas Leijdekkers's avatar Bas Leijdekkers
Browse files

IG: Introduce shouldInspect(File) method

parent 9e5881e7
Branches unavailable Tags unavailable
Showing with 121 additions and 192 deletions
+121 -192
......@@ -26,6 +26,7 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiFile;
import com.intellij.ui.DocumentAdapter;
import com.intellij.util.ReflectionUtil;
import com.intellij.util.ui.UIUtil;
......@@ -95,8 +96,11 @@ public abstract class BaseInspection extends BaseJavaBatchLocalInspectionTool {
@Override
@NotNull
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder,
public final PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder,
boolean isOnTheFly) {
if (!shouldInspect(holder.getFile())) {
return new PsiElementVisitor() { };
}
final BaseInspectionVisitor visitor = buildVisitor();
visitor.setProblemsHolder(holder);
visitor.setOnTheFly(isOnTheFly);
......@@ -104,6 +108,16 @@ public abstract class BaseInspection extends BaseJavaBatchLocalInspectionTool {
return visitor;
}
/**
* To check precondition(s) on the entire file, to prevent doing the check on every PsiElement visited.
* Useful for e.g. a {@link com.intellij.psi.util.PsiUtil#isLanguageLevel5OrHigher(com.intellij.psi.PsiElement)} check
* which will be the same for all elements in the specified file.
* When this method returns false, {@link #buildVisitor()} will not be called.
*/
public boolean shouldInspect(PsiFile file) {
return true;
}
protected JFormattedTextField prepareNumberEditor(@NonNls final String fieldName) {
final NumberFormat formatter = NumberFormat.getIntegerInstance();
formatter.setParseIntegerOnly(true);
......
/*
* Copyright 2003-2007 Dave Griffith, Bas Leijdekkers
* Copyright 2003-2014 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -15,7 +15,6 @@
*/
package com.siyeh.ig.bugs;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
import com.siyeh.InspectionGadgetsBundle;
......@@ -47,17 +46,13 @@ public class NullArgumentToVariableArgMethodInspection
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new NullArgumentToVariableArgVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new NullArgumentToVariableArgVisitor();
}
private static class NullArgumentToVariableArgVisitor
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.bugs;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.TypeConversionUtil;
......@@ -47,17 +46,13 @@ public class PrimitiveArrayArgumentToVariableArgMethodInspection extends BaseIns
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new PrimitiveArrayArgumentToVariableArgVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new PrimitiveArrayArgumentToVariableArgVisitor();
}
private static class PrimitiveArrayArgumentToVariableArgVisitor extends BaseInspectionVisitor {
......
......@@ -48,12 +48,16 @@ public class InterfaceMayBeAnnotatedFunctionalInspection extends BaseInspection
return InspectionGadgetsBundle.message("interface.may.be.annotated.functional.problem.descriptor");
}
@Override
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel8OrHigher(file);
}
@Nullable
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
final PsiClass aClass = (PsiClass)infos[0];
return new DelegatingFix(new AddAnnotationPsiFix(CommonClassNames.JAVA_LANG_FUNCTIONAL_INTERFACE, aClass, PsiNameValuePair.EMPTY_ARRAY));
}
@Override
......@@ -65,9 +69,6 @@ public class InterfaceMayBeAnnotatedFunctionalInspection extends BaseInspection
@Override
public void visitClass(PsiClass aClass) {
if (!PsiUtil.isLanguageLevel8OrHigher(aClass)) {
return;
}
super.visitClass(aClass);
if (!aClass.isInterface() || AnnotationUtil.isAnnotated(aClass, "java.lang.FunctionalInterface", false)) {
return;
......
......@@ -15,7 +15,6 @@
*/
package com.siyeh.ig.inheritance;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
import com.siyeh.InspectionGadgetsBundle;
......@@ -53,18 +52,13 @@ public class ExtendsAnnotationInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new ExtendsAnnotationVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new ExtendsAnnotationVisitor();
}
private static class ExtendsAnnotationVisitor
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.inheritance;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
......@@ -121,19 +120,15 @@ public class MissingOverrideAnnotationInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new MissingOverrideAnnotationVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new MissingOverrideAnnotationVisitor();
}
private class MissingOverrideAnnotationVisitor
extends BaseInspectionVisitor {
......
......@@ -17,7 +17,6 @@ package com.siyeh.ig.inheritance;
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.search.searches.ReferencesSearch;
......@@ -110,17 +109,13 @@ public class TypeParameterExtendsFinalClassInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new TypeParameterExtendsFinalClassVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new TypeParameterExtendsFinalClassVisitor();
}
private static class TypeParameterExtendsFinalClassVisitor extends BaseInspectionVisitor {
......
/*
* Copyright 2011-2013 Bas Leijdekkers
* Copyright 2011-2014 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -16,11 +16,13 @@
package com.siyeh.ig.javadoc;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.*;
import com.intellij.psi.JavaDocTokenType;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.javadoc.PsiDocToken;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.PsiTreeUtil;
......@@ -122,18 +124,13 @@ public class HtmlTagCanBeJavadocTagInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new HtmlTagCanBeJavaDocTagVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new HtmlTagCanBeJavaDocTagVisitor();
}
private static class HtmlTagCanBeJavaDocTagVisitor extends BaseInspectionVisitor {
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.javadoc;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
......@@ -104,17 +103,13 @@ public class MissingDeprecatedAnnotationInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new MissingDeprecatedAnnotationVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new MissingDeprecatedAnnotationVisitor();
}
private class MissingDeprecatedAnnotationVisitor extends BaseInspectionVisitor {
......
......@@ -17,9 +17,7 @@ package com.siyeh.ig.jdk;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
......@@ -90,14 +88,9 @@ public class AutoBoxingInspection extends BaseInspection {
"ignoreAddedToCollection");
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@Override
......@@ -228,14 +221,6 @@ public class AutoBoxingInspection extends BaseInspection {
private class AutoBoxingVisitor extends BaseInspectionVisitor {
@Override
public void visitElement(PsiElement element) {
if (element.getLanguage() != JavaLanguage.INSTANCE) {
return;
}
super.visitElement(element);
}
@Override
public void visitArrayAccessExpression(PsiArrayAccessExpression expression) {
super.visitArrayAccessExpression(expression);
......
......@@ -17,8 +17,6 @@ package com.siyeh.ig.jdk;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.search.LocalSearchScope;
......@@ -39,7 +37,10 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class AutoUnboxingInspection extends BaseInspection {
......@@ -298,19 +299,13 @@ public class AutoUnboxingInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new AutoUnboxingVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
PsiFile psiFile = holder.getFile();
if (psiFile.getLanguage() != JavaLanguage.INSTANCE || !PsiUtil.isLanguageLevel5OrHigher(psiFile)) {
return new PsiElementVisitor() {
};
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new AutoUnboxingVisitor();
}
private static class AutoUnboxingVisitor extends BaseInspectionVisitor {
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtil;
......@@ -58,7 +57,7 @@ public class BigDecimalLegacyMethodInspection extends BaseInspection {
if (!(value instanceof Integer)) {
return null;
}
final int roundingMode = (Integer)value;
final int roundingMode = ((Integer)value).intValue();
if (roundingMode < 0 || roundingMode > 7) {
return null;
}
......@@ -128,19 +127,15 @@ public class BigDecimalLegacyMethodInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new BigDecimalLegacyMethodVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new BigDecimalLegacyMethodVisitor();
}
private static class BigDecimalLegacyMethodVisitor extends BaseInspectionVisitor {
@Override
......
/*
* Copyright 2008-2011 Bas Leijdekkers
* Copyright 2008-2014 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -16,7 +16,6 @@
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
......@@ -182,15 +181,11 @@ public class CollectionsFieldAccessReplaceableByMethodCallInspection
return new CollectionsFieldAccessReplaceableByMethodCallVisitor();
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
private static class CollectionsFieldAccessReplaceableByMethodCallVisitor
extends BaseInspectionVisitor {
......
......@@ -15,7 +15,6 @@
*/
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.psi.*;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.InheritanceUtil;
......@@ -568,17 +567,13 @@ public class ForCanBeForeachInspectionBase extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new ForCanBeForeachVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new ForCanBeForeachVisitor();
}
private static class NumCallsToIteratorNextVisitor
......
/*
* Copyright 2005-2011 Bas Leijdekkers
* Copyright 2005-2014 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -17,7 +17,6 @@
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.tree.IElementType;
......@@ -162,17 +161,13 @@ public class IndexOfReplaceableByContainsInspection
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new IndexOfReplaceableByContainsVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new IndexOfReplaceableByContainsVisitor();
}
private static class IndexOfReplaceableByContainsVisitor
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.migration;
import com.intellij.codeInsight.NullableNotNullManager;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException;
......@@ -98,19 +97,15 @@ public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new MethodCanBeVariableArityMethodVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public BaseInspectionVisitor buildVisitor() {
return new MethodCanBeVariableArityMethodVisitor();
}
private class MethodCanBeVariableArityMethodVisitor extends BaseInspectionVisitor {
@Override
......
/*
* Copyright 2003-2013 Dave Griffith, Bas Leijdekkers
* Copyright 2003-2014 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -15,7 +15,6 @@
*/
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTreeUtil;
......@@ -72,17 +71,13 @@ public class RawUseOfParameterizedTypeInspection extends BaseInspection {
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new RawUseOfParameterizedTypeVisitor();
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
@Override
public BaseInspectionVisitor buildVisitor() {
return new RawUseOfParameterizedTypeVisitor();
}
private class RawUseOfParameterizedTypeVisitor extends BaseInspectionVisitor {
......
......@@ -16,7 +16,6 @@
package com.siyeh.ig.migration;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemsHolder;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiTreeUtil;
......@@ -151,14 +150,9 @@ public class StringBufferReplaceableByStringBuilderInspection extends BaseInspec
return new StringBufferReplaceableByStringBuilderVisitor();
}
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
if (!PsiUtil.isLanguageLevel5OrHigher(holder.getFile())) {
return new PsiElementVisitor() { };
}
return super.buildVisitor(holder, isOnTheFly);
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel5OrHigher(file);
}
private static class StringBufferReplaceableByStringBuilderVisitor extends BaseInspectionVisitor {
......
/*
* 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.
......@@ -296,6 +296,11 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
}
}
@Override
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel7OrHigher(file);
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new TryFinallyCanBeTryWithResourcesVisitor();
......@@ -306,9 +311,6 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
@Override
public void visitTryStatement(PsiTryStatement tryStatement) {
super.visitTryStatement(tryStatement);
if (!PsiUtil.isLanguageLevel7OrHigher(tryStatement)) {
return;
}
final PsiResourceList resourceList = tryStatement.getResourceList();
if (resourceList != null) {
return;
......
......@@ -53,11 +53,6 @@ public class TryWithIdenticalCatchesInspection extends BaseInspection {
return InspectionGadgetsBundle.message("try.with.identical.catches.problem.descriptor", type.getPresentableText());
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new TryWithIdenticalCatchesVisitor();
}
@Nls
@NotNull
@Override
......@@ -66,8 +61,13 @@ public class TryWithIdenticalCatchesInspection extends BaseInspection {
}
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
return new CollapseCatchSectionsFix(((Integer)infos[1]).intValue(), ((Integer)infos[2]).intValue());
public boolean shouldInspect(PsiFile file) {
return PsiUtil.isLanguageLevel7OrHigher(file);
}
@Override
public BaseInspectionVisitor buildVisitor() {
return new TryWithIdenticalCatchesVisitor();
}
private static class TryWithIdenticalCatchesVisitor extends BaseInspectionVisitor {
......@@ -75,9 +75,6 @@ public class TryWithIdenticalCatchesInspection extends BaseInspection {
@Override
public void visitTryStatement(PsiTryStatement statement) {
super.visitTryStatement(statement);
if (!PsiUtil.isLanguageLevel7OrHigher(statement)) {
return;
}
final PsiCatchSection[] catchSections = statement.getCatchSections();
if (catchSections.length < 2) {
return;
......@@ -158,6 +155,11 @@ public class TryWithIdenticalCatchesInspection extends BaseInspection {
}
}
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
return new CollapseCatchSectionsFix(((Integer)infos[1]).intValue(), ((Integer)infos[2]).intValue());
}
private static class CollapseCatchSectionsFix extends InspectionGadgetsFix {
private final int myCollapseIntoIndex;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment