[java-highlighting] IJ-CR-140387 IDEA-356470 Support jep 455. Generate true and false cases for boolean selector

- support constants

GitOrigin-RevId: ff51020da5086de2e59439647588e8b5c4ba4c85
This commit is contained in:
Mikhail Pyltsin
2024-07-19 11:18:27 +02:00
committed by intellij-monorepo-bot
parent 616898e4c9
commit 01b39de56a
3 changed files with 39 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ package com.siyeh.ig.fixes;
import com.intellij.psi.*;
import com.intellij.util.containers.ContainerUtil;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.psiutils.ExpressionUtils;
import com.siyeh.ig.psiutils.SwitchUtils;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
@@ -40,8 +41,8 @@ public final class CreateMissingBooleanPrimitiveBranchesFix extends CreateMissin
PsiType type = patternVariable.getType();
if (type.isAssignableFrom(boxedBooleanType)) return null;
}
if (branch instanceof PsiLiteralExpression literal && literal.getValue() instanceof Boolean) {
existed.add(literal.getText());
if (branch instanceof PsiExpression expression && ExpressionUtils.computeConstantExpression(expression) instanceof Boolean booleanValue) {
existed.add(booleanValue.toString());
}
}
List<String> missed = new ArrayList<>();

View File

@@ -0,0 +1,19 @@
// "Create missing switch branch 'false'" "true-preview"
import java.util.List;
class Test {
public static void main(String[] args) {
test(true);
}
private static final boolean yes = true;
public static void test(boolean b) {
switch (b){
case yes -> {
}
case false -> {
}
}
}e
}

View File

@@ -0,0 +1,17 @@
// "Create missing switch branch 'false'" "true-preview"
import java.util.List;
class Test {
public static void main(String[] args) {
test(true);
}
private static final boolean yes = true;
public static void test(boolean b) {
switch (b<caret>){
case yes -> {
}
}
}e
}