diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java index 34db4a516e1e..15f3a5d2bb3d 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/WeakestTypeFinder.java @@ -132,6 +132,13 @@ public class WeakestTypeFinder { return Collections.emptyList(); } } + else if (referenceParent instanceof PsiResourceExpression) { + PsiClass closeable = facade.findClass(CommonClassNames.JAVA_LANG_AUTO_CLOSEABLE, scope); + if (closeable == null || variableOrMethodClass.equals(closeable)) { + return Collections.emptyList(); + } + weakestTypeClasses.add(closeable); + } else if (referenceParent instanceof PsiAssignmentExpression) { final PsiAssignmentExpression assignmentExpression = (PsiAssignmentExpression)referenceParent; if (!findWeakestType(referenceElement, assignmentExpression, useRighthandTypeAsWeakestTypeInAssignments, weakestTypeClasses)) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/weaken_type/TryWithResources.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/weaken_type/TryWithResources.java new file mode 100644 index 000000000000..dc56ef5cab4c --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/abstraction/weaken_type/TryWithResources.java @@ -0,0 +1,23 @@ +import java.io.Closeable; + +class DummyClass { + + public void doSomething() { + } +} + +class CloseableDummyClass extends DummyClass implements Closeable { + + @Override + public void close() { + } +} + +class CallerClass { + + public void call(CloseableDummyClass closeableDummyClass) { + try (closeableDummyClass) { + closeableDummyClass.doSomething(); + } + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/TypeMayBeWeakenedInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/TypeMayBeWeakenedInspectionTest.java index 8d64acb629c4..9411fe49c19a 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/TypeMayBeWeakenedInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/TypeMayBeWeakenedInspectionTest.java @@ -10,6 +10,7 @@ public class TypeMayBeWeakenedInspectionTest extends LightInspectionTestCase { public void testNumberAdderDemo() { doTest(); } public void testAutoClosableTest() { doTest(); } public void testLambda() { doTest(); } + public void testTryWithResources() { doTest(); } @Override protected String[] getEnvironmentClasses() {