/
githubmirror
/
panama-vector
Обзор
Документация
Войти
/
githubmirror
/
panama-vector
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/langtools/tools/javac/lambda/MethodReference64.java
46 строк
1 KB
Erik Joelsson
8187443: Forest Consolidation: Move files to unified layout
12 сен 2017, 20:03
12 сен 2017, 20:03
3789983
Код
Авторство
О чём код?
/* * @test /nodynamiccopyright/ * @bug 8008540 8008539 8008538 * @summary Constructor reference to non-reifiable array should be rejected * @compile/fail/ref=MethodReference64.out -XDrawDiagnostics MethodReference64.java */ class MethodReference64 { interface ClassFactory { Object m(); } interface ArrayFactory { Object m(int i); } @interface Anno { } enum E { } interface I { } static class Foo<X> { } void m(ClassFactory cf) { } void m(ArrayFactory cf) { } void testAssign() { ClassFactory c1 = Anno::new; //error ClassFactory c2 = E::new; //error ClassFactory c3 = I::new; //error ClassFactory c4 = Foo<?>::new; //error ClassFactory c5 = 1::new; //error ArrayFactory a1 = Foo<?>[]::new; //ok ArrayFactory a2 = Foo<? extends String>[]::new; //error } void testMethod() { m(Anno::new); //error m(E::new); //error m(I::new); //error m(Foo<?>::new); //error m(1::new); //error m(Foo<?>[]::new); //ok - resolves to m(ArrayFactory) m(Foo<? extends String>[]::new); //error } }