mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 10:20:15 +07:00
method refs: test data to check enum/interface/annotation not accepted; isAcceptable checks on Array types
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
class Test {
|
||||
interface IFactory {
|
||||
Object m();
|
||||
}
|
||||
|
||||
@interface Anno {}
|
||||
|
||||
enum E {}
|
||||
|
||||
interface I {}
|
||||
|
||||
static class Foo<X> { }
|
||||
|
||||
void foo(IFactory cf) { }
|
||||
|
||||
void testAssign() {
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'Test.IFactory'">IFactory c1 = Anno::new;</error>
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'Test.IFactory'">IFactory c2 = E::new;</error>
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'Test.IFactory'">IFactory c3 = I::new;</error>
|
||||
IFactory c4 = Foo<?>::new;
|
||||
IFactory c5 = <error descr="Cannot find class 1">1</error>::new;
|
||||
|
||||
foo<error descr="'foo(Test.IFactory)' in 'Test' cannot be applied to '(<method reference>)'">(Anno::new)</error>;
|
||||
foo<error descr="'foo(Test.IFactory)' in 'Test' cannot be applied to '(<method reference>)'">(E::new)</error>;
|
||||
foo<error descr="'foo(Test.IFactory)' in 'Test' cannot be applied to '(<method reference>)'">(I::new)</error>;
|
||||
foo(Foo<?>::new);
|
||||
foo(<error descr="Cannot find class 1">1</error>::new);
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,11 @@ class OnArrayTest {
|
||||
T make(int size);
|
||||
}
|
||||
|
||||
static class Foo<X> { }
|
||||
interface ObjectArrayReturnType {
|
||||
Object make(int size);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Cln s = int[]::clone;
|
||||
IA a = int[]::new;
|
||||
@@ -35,5 +40,8 @@ class OnArrayTest {
|
||||
ArrayReturnType<String[]> a1 = String[]::new;
|
||||
ArrayReturnType<String[][]> a2 = String[][]::new;
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'OnArrayTest.ArrayReturnType<java.lang.String[]>'">ArrayReturnType<String[]> a3 = int[]::new;</error>
|
||||
|
||||
ObjectArrayReturnType a4 = Foo<?>[]::new;
|
||||
ObjectArrayReturnType a5 = Foo<? extends String>[]::new;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user