IDEA-270441 convert switch to if: support patterns and null

GitOrigin-RevId: 06cdce2583774907fc263b85fdd85624778fccdf
This commit is contained in:
Alexandr Suhinin
2021-07-19 16:36:32 +03:00
committed by intellij-monorepo-bot
parent 7f3818fc95
commit 35d2aba047
8 changed files with 173 additions and 52 deletions

View File

@@ -0,0 +1,12 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(Object o) {
if (o instanceof String) {
System.out.println("one");
} else {
System.out.println("default");
}
}
}

View File

@@ -0,0 +1,18 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(Object o) {
if (o == null || o instanceof String) {
System.out.println("one");
} else if (o instanceof Integer i && (i > 0)) {
System.out.println("two");
} else if (o instanceof /*1*/ Float /*2*/ /*3*/f && f/*4*/ > 5 && f < 10) {
System.out.println("two");
} else if (o instanceof Character c) {
System.out.println(c);
} else if (o instanceof Double) {
System.out.println();
}
}
}

View File

@@ -0,0 +1,12 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(String s) {
if (s == null || "zero".equals(s)) {
System.out.println(0);
} else if ("one".equals(s)) {
System.out.println(1);
}
}
}

View File

@@ -0,0 +1,11 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(Object o) {
<caret>switch (o) {
case String s -> System.out.println("one");
case null, default -> System.out.println("default");
}
}
}

View File

@@ -0,0 +1,15 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(Object o) {
<caret>switch (o) {
case null, String s -> System.out.println("one");
case ((Integer i) && (i > 0)) -> System.out.println("two");
case /*1*/Float/*2*/ /*3*/f && f/*4*/ > 5 && f < 10 -> System.out.println("two");
case Character c -> System.out.println(c);
case Double c -> System.out.println();
default -> {}
}
}
}

View File

@@ -0,0 +1,12 @@
// "Replace 'switch' with 'if'" "true"
abstract class Test {
abstract Object getObject();
void foo(String s) {
<caret>switch (s) {
case null, "zero" -> System.out.println(0);
case "one" -> System.out.println(1);
default -> {}
}
}
}