From f40d2f8734258c913356e37afbc99a195fc37763 Mon Sep 17 00:00:00 2001 From: Roman Ivanov Date: Thu, 25 Jan 2018 16:37:48 +0700 Subject: [PATCH] AutoCloseableResourceInspection: invert func, move class : IDEA-CR-28727 --- .../resources/ImplicitResourceCloser.java | 4 ++-- .../AutoCloseableResourceInspectionBase.java | 17 +++++++++-------- .../src/META-INF/InspectionGadgets.xml | 2 +- .../siyeh/ig/resources/ImplicitCloserTest.java | 1 + 4 files changed, 13 insertions(+), 11 deletions(-) rename plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/{siyeh/ig => intellij/codeInspection}/resources/ImplicitResourceCloser.java (87%) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/ImplicitResourceCloser.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/intellij/codeInspection/resources/ImplicitResourceCloser.java similarity index 87% rename from plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/ImplicitResourceCloser.java rename to plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/intellij/codeInspection/resources/ImplicitResourceCloser.java index ba8f7d55b21a..3c8a174124b1 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/ImplicitResourceCloser.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/intellij/codeInspection/resources/ImplicitResourceCloser.java @@ -1,7 +1,7 @@ /* - * Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. */ -package com.siyeh.ig.resources; +package com.intellij.codeInspection.resources; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.psi.PsiVariable; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/AutoCloseableResourceInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/AutoCloseableResourceInspectionBase.java index 98130431f953..353bcb4a0b68 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/AutoCloseableResourceInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/resources/AutoCloseableResourceInspectionBase.java @@ -16,6 +16,7 @@ package com.siyeh.ig.resources; import com.intellij.codeInspection.ProblemDescriptor; +import com.intellij.codeInspection.resources.ImplicitResourceCloser; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.InvalidDataException; @@ -165,7 +166,7 @@ public class AutoCloseableResourceInspectionBase extends ResourceInspection { @Override public void visitNewExpression(PsiNewExpression expression) { super.visitNewExpression(expression); - if (!isNotSafelyClosedResource(expression)) { + if (isSafelyClosedResource(expression)) { return; } registerNewExpressionError(expression, expression.getType(), Boolean.FALSE); @@ -174,7 +175,7 @@ public class AutoCloseableResourceInspectionBase extends ResourceInspection { @Override public void visitMethodCallExpression(PsiMethodCallExpression expression) { super.visitMethodCallExpression(expression); - if (ignoreFromMethodCall || myMethodMatcher.matches(expression) || !isNotSafelyClosedResource(expression)) { + if (ignoreFromMethodCall || myMethodMatcher.matches(expression) || isSafelyClosedResource(expression)) { return; } registerMethodCallError(expression, expression.getType(), Boolean.TRUE); @@ -198,16 +199,16 @@ public class AutoCloseableResourceInspectionBase extends ResourceInspection { registerError(expression, type, Boolean.FALSE); } - private boolean isNotSafelyClosedResource(PsiExpression expression) { + private boolean isSafelyClosedResource(PsiExpression expression) { if (!isResourceCreation(expression)) { - return false; + return true; } - if (CLOSE.test(ExpressionUtils.getCallForQualifier(expression))) return false; + if (CLOSE.test(ExpressionUtils.getCallForQualifier(expression))) return true; final PsiVariable variable = ResourceInspection.getVariable(expression); - if(variable instanceof PsiResourceVariable || isResourceEscapingFromMethod(variable, expression)) return false; - if (variable == null) return true; + if(variable instanceof PsiResourceVariable || isResourceEscapingFromMethod(variable, expression)) return true; + if (variable == null) return false; return StreamEx.of(Extensions.getExtensions(ImplicitResourceCloser.EP_NAME)) - .noneMatch(closer -> closer.isSafelyClosed(variable)); + .anyMatch(closer -> closer.isSafelyClosed(variable)); } } } diff --git a/plugins/InspectionGadgets/src/META-INF/InspectionGadgets.xml b/plugins/InspectionGadgets/src/META-INF/InspectionGadgets.xml index 8f3bc7b9364c..1e5e595b600b 100644 --- a/plugins/InspectionGadgets/src/META-INF/InspectionGadgets.xml +++ b/plugins/InspectionGadgets/src/META-INF/InspectionGadgets.xml @@ -4,7 +4,7 @@ - + diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/resources/ImplicitCloserTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/resources/ImplicitCloserTest.java index 9fa183281296..0852a85527d1 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/resources/ImplicitCloserTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/resources/ImplicitCloserTest.java @@ -3,6 +3,7 @@ */ package com.siyeh.ig.resources; +import com.intellij.codeInspection.resources.ImplicitResourceCloser; import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.openapi.extensions.Extensions; import com.intellij.psi.PsiVariable;