From 244c7f0164a29b410f684eab3a101fcb66e805f6 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Sat, 8 Dec 2018 16:56:57 +0700 Subject: [PATCH] IDEA-203812 bad code green: switch expression does not have any case clauses --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 2 +- .../advHighlighting12/SwitchExpressions.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index b3e248e47eab..5a44d6334a58 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -1996,7 +1996,7 @@ public class HighlightUtil extends HighlightUtilBase { Set missingConstants = new HashSet<>(); boolean exhaustive = hasDefaultCase; if (!exhaustive) { - if (selectorType instanceof PsiClassType) { + if (!values.isEmpty() && selectorType instanceof PsiClassType) { PsiClass type = ((PsiClassType)selectorType).resolve(); if (type != null && type.isEnum()) { for (PsiField field : type.getFields()) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressions.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressions.java index 2d914541d1a3..c68aaae269ce 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressions.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting12/SwitchExpressions.java @@ -58,4 +58,10 @@ class SwitchExpressions { }); } } + + enum Empty {} + + boolean testEmpty(Empty e) { + return switch (e) {}; + } } \ No newline at end of file