[java-intentions] IDEA-313226. Suggest the correct type for switch. Generics and tests

GitOrigin-RevId: 4814c85fd7721fb7866210825a0d2286c61e2043
This commit is contained in:
Mikhail Pyltsin
2023-02-20 18:12:13 +01:00
committed by intellij-monorepo-bot
parent ce216843a0
commit 016ba5fb84
8 changed files with 210 additions and 8 deletions

View File

@@ -0,0 +1,22 @@
// "Create local variable 'i'" "true-preview"
class A {
String testPattern() {
BaseInterface<String> i;
return switch (i)
{
case BaseInterface.Record1<String> record1 -> "1";
case BaseInterface.Record2 record2 -> "2";
default -> "3";
};
}
}
sealed interface BaseInterface<T> permits BaseInterface.Record1, BaseInterface.Record2{
record Record1<T>() implements BaseInterface<T> {
}
record Record2() implements BaseInterface<String> {
}
}

View File

@@ -0,0 +1,21 @@
// "Create local variable 'i'" "true-preview"
class A {
String testPattern() {
return switch (i<caret>)
{
case BaseInterface.Record1<String> record1 -> "1";
case BaseInterface.Record2 record2 -> "2";
default -> "3";
};
}
}
sealed interface BaseInterface<T> permits BaseInterface.Record1, BaseInterface.Record2{
record Record1<T>() implements BaseInterface<T> {
}
record Record2() implements BaseInterface<String> {
}
}