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;