diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java index b1c7d8de4e20..6e84b43e32d4 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/java/ControlFlowAnalyzer.java @@ -1085,6 +1085,8 @@ public class ControlFlowAnalyzer extends JavaElementVisitor { PsiExpression expression = ((PsiGuardedPattern)innerPattern).getGuardingExpression(); if (expression != null) { expression.accept(this); + } else { + addInstruction(new PushValueInstruction(DfTypes.BOOLEAN)); } DeferredOffset condGotoOffset = new DeferredOffset(); addInstruction(new ConditionalGotoInstruction(condGotoOffset, DfTypes.TRUE)); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/Patterns.java b/java/java-tests/testData/inspection/dataFlow/fixture/Patterns.java index 1d62bb1b7b4d..11c636fe4f59 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/Patterns.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/Patterns.java @@ -1,4 +1,10 @@ class Test { + int testIncomplete(Object obj) { + return switch(obj) { + case String s && + }; + } + void test1(Object o) { int a; switch (o) {