/** * @test /nodynamiccopyright/ * @bug 4986256 * @compile/ref=Unchecked.noLint.out -XDrawDiagnostics Unchecked.java * @compile/ref=Unchecked.lintUnchecked.out -Xlint:unchecked -XDrawDiagnostics Unchecked.java * @compile/ref=Unchecked.lintAll.out -Xlint:all,-path -XDrawDiagnostics Unchecked.java */ import java.util.ArrayList; import java.util.List; // control: this class should generate warnings class Unchecked { void m() { List l = new ArrayList<String>(); l.add("abc"); } } // tests: the warnings that would otherwise be generated should all be suppressed @SuppressWarnings("unchecked") class Unchecked2 { void m() { List l = new ArrayList<String>(); l.add("abc"); } } class Unchecked3 { @SuppressWarnings("unchecked") void m() { List l = new ArrayList<String>(); l.add("abc"); } } class Unchecked4 { void m() { @SuppressWarnings("unchecked") class Inner { void m() { List l = new ArrayList<String>(); l.add("abc"); } } } } // this class should produce warnings because @SuppressWarnings should not be inherited class Unchecked5 extends Unchecked2 { void m() { List l = new ArrayList<String>(); l.add("abc"); } }