Java: better error reporting and quick fixes for the diamond operator and generic array creation (IDEA-299195)

GitOrigin-RevId: baa354ad9132bf6d939f19ecd2cfd6cfc56466a2
This commit is contained in:
Bas Leijdekkers
2024-01-08 15:11:58 +01:00
committed by intellij-monorepo-bot
parent 7e1c830a1a
commit ab928055bb
12 changed files with 78 additions and 35 deletions

View File

@@ -3,16 +3,16 @@ class Main<T> {
{
I<Main<String> > aNew = Main[]::new;
I<Main<?> > aNew1 = Main<?>[]::new;
I<Main<? extends String>> aNew2 = <error descr="Generic array creation">Main<? extends String>[]</error>::new;
I<Main<? extends String>> aNew2 = Main<error descr="Generic array creation not allowed"><? extends String></error>[]::new;
I<int[]> p = int[][]::new;
I<Main<String>[]> a = Main[][]::new;
I<Main<?>[]> a1 = Main<?>[][]::new;
I<Main<? extends String>[]> a2 = <error descr="Generic array creation">Main<? extends String>[][]</error>::new;
I<Main<? extends String>[]> a2 = Main<error descr="Generic array creation not allowed"><? extends String></error>[][]::new;
I<Inner<String>> inn1 = Main.Inner[]::new;
I<Main<?>.Inner<?>> inn2 = Main<?>.Inner<?>[]::new;
I<Main<String>.Inner<String>> inn3 = <error descr="Generic array creation">Main<String>.Inner<String>[]</error>::new;
I<Main<String>.Inner<String>> inn3 = Main<String>.Inner<error descr="Generic array creation not allowed"><String></error>[]::new;
I<Main<?>.Inner<?>> inn4 = Main<?>.Inner<?>[]::<String>new;
}

View File

@@ -10,8 +10,8 @@ class Test {
I i2 = <error descr="Unexpected wildcard">Foo<? extends String></error>::new;
I i3 = Foo<String>::new;
I i4 = <error descr="Generic array creation">Foo<? extends String>[]</error>::new;
I i5 = <error descr="Generic array creation">Foo<String>[]</error>::new;
I i4 = Foo<error descr="Generic array creation not allowed"><? extends String></error>[]::new;
I i5 = Foo<error descr="Generic array creation not allowed"><String></error>[]::new;
}
}