| 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; |
| } |
| |
| } |
| ///////////////////////////////////// |