method references: highlight separately non-instantiated classes, not resolved methods (IDEA-123279)

This commit is contained in:
Anna Kozlova
2014-04-01 20:49:29 +02:00
parent 6b4ad69ecd
commit 2cc9842ac2
18 changed files with 110 additions and 77 deletions

View File

@@ -22,20 +22,20 @@ class Test {
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 c1 = <error descr="'Anno' is abstract; cannot be instantiated">Anno::new</error>;
IFactory c2 = <error descr="Enum types cannot be instantiated">E::new</error>;
IFactory c3 = <error descr="'I' is abstract; cannot be instantiated">I::new</error>;
IFactory c4 = <error descr="Unexpected wildcard">Foo<?></error>::new;
IFactory c5 = <error descr="Cannot find class 1">1</error>::new;
<error descr="Incompatible types. Found: '<method reference>', required: 'Test.IFactory'">IFactory c6 = ABar::new;</error>
<error descr="Incompatible types. Found: '<method reference>', required: 'Test.IFactory'">IFactory c7 = ABaz::new;</error>
IFactory c6 = <error descr="'ABar' is abstract; cannot be instantiated">ABar::new</error>;
IFactory c7 = <error descr="'ABaz' is abstract; cannot be instantiated">ABaz::new</error>;
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(<error descr="'Anno' is abstract; cannot be instantiated">Anno::new</error>);
foo(<error descr="Enum types cannot be instantiated">E::new</error>);
foo(<error descr="'I' is abstract; cannot be instantiated">I::new</error>);
foo(<error descr="Unexpected wildcard">Foo<?></error>::new);
foo(<error descr="Cannot find class 1">1</error>::new);
foo<error descr="'foo(Test.IFactory)' in 'Test' cannot be applied to '(<method reference>)'">(ABar::new)</error>;
foo<error descr="'foo(Test.IFactory)' in 'Test' cannot be applied to '(<method reference>)'">(ABaz::new)</error>;
foo(<error descr="'ABar' is abstract; cannot be instantiated">ABar::new</error>);
foo(<error descr="'ABaz' is abstract; cannot be instantiated">ABaz::new</error>);
}
}