package com.siyeh.igtest.abstraction.weaken_type; public class AutoClosableTest { public static class Foo { public void go() {} } public static class Bar extends Foo implements AutoCloseable { @Override public void close() {} } public static void test() { try (Bar bar = new Bar()) { bar.go(); } } } class AutoClosableTest2 { public static class Foo implements AutoCloseable { public void close() {} public void go() {} } public static class Bar extends Foo {} public static void test() { try (Bar <warning descr="Type of variable 'bar' may be weakened to 'com.siyeh.igtest.abstraction.weaken_type.AutoClosableTest2.Foo'">bar</warning> = new Bar()) { bar.go(); } } void dodo() throws java.io.IOException { try (java.io.Reader <warning descr="Type of variable 'reader' may be weakened to 'java.io.Closeable'">reader</warning> = new java.io.FileReader("/home/steve/foo.txt")) { System.out.println(reader); } } }