import java.io.FileNotFoundException; import java.util.*; interface PrivilegedExceptionAction <E extends Exception> { void run() throws E; } class AccessController { public static <E extends Exception> Object doPrivileged(PrivilegedExceptionAction<E> action) throws E { return null; } } class Test { public static void main(String[] args) { try { AccessController.doPrivileged( new PrivilegedExceptionAction<FileNotFoundException>() { public void run() throws FileNotFoundException { } }); } catch (FileNotFoundException f) { } } // @#@! mock JDK Class does not take params // static <T> T create(Class<T> t) throws InstantiationException, IllegalAccessException { // return t.newInstance(); // } } //IDEADEV-6390 class Printer<T> { private final List<T> _elements; private Printer(final Collection<? extends T> col) { _elements = new ArrayList<T>(col); } public static <T> Printer<T> build(final Collection<? extends T> col) { return new Printer<T>(col); } public static <T, S extends T> Printer<T> build(final S... elements) { return new Printer<T>(Arrays.asList(elements)); } public void print() { for (final T element : _elements) { System.out.println(element); } } public static void main(final String[] args) { final Printer<?> objects = build(Integer.valueOf(5), Boolean.TRUE, "A String!"); //this is OK objects.print(); } } //end of IDEADEV-6390 //IDEADEV-6738 interface I1<P1 extends I1<P1,P2>, P2 extends I2<P1,P2>>{} interface I2<P1 extends I1<P1,P2>, P2 extends I2<P1,P2>>{} class C1 implements I1<C1,C2>{} class C2 implements I2<C1,C2>{} class U { public static <P1 extends I1<P1,P2>, P2 extends I2<P1,P2>> P1 test(P1 p1) { return null; } { C1 c = new C1(); U.test(c); //this should be OK } } //end of IDEADEV-6738 /////////////////////////////////// class Err { void f() { Decl[] extensions = getExtensions(Decl.EXTENSION_POINT_NAME); } static <T> T[] getExtensions(List<T> tExtensionPointName) { return null; } public static class Decl<K,V> { public static List<Decl> EXTENSION_POINT_NAME = null; } } /////////////////////////////////////