method refs: test data to check enum/interface/annotation not accepted; isAcceptable checks on Array types

This commit is contained in:
anna
2013-02-26 20:22:48 +01:00
parent f247ebba02
commit e48f61bf4d
4 changed files with 48 additions and 5 deletions

View File

@@ -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);
}
}