From 819502364662555a8efb2050e65cff215efc11eb Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 14 Apr 2014 19:35:18 +0200 Subject: [PATCH] switch selector error message (IDEA-123937) --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 8 +++++--- .../src/messages/JavaErrorMessages.properties | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) 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 1d6715c0eb6a..66dfd93bd79c 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 @@ -1323,10 +1323,12 @@ public class HighlightUtil extends HighlightUtilBase { return null; } HighlightInfo errorResult = null; - if (!isValidTypeForSwitchSelector(type, PsiUtil.isLanguageLevel7OrHigher(expression))) { + final boolean atLeastJava7 = PsiUtil.isLanguageLevel7OrHigher(expression); + if (!isValidTypeForSwitchSelector(type, atLeastJava7)) { + final String switchSelectorMessage = atLeastJava7 ? JavaErrorMessages.message("valid.switch.17.selector.types") + : JavaErrorMessages.message("valid.switch.selector.types"); String message = - JavaErrorMessages.message("incompatible.types", JavaErrorMessages.message("valid.switch.selector.types"), JavaHighlightUtil.formatType( - type)); + JavaErrorMessages.message("incompatible.types", switchSelectorMessage, JavaHighlightUtil.formatType(type)); errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(expression).descriptionAndTooltip(message).create(); QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createConvertSwitchToIfIntention(statement)); if (PsiType.LONG.equals(type) || PsiType.FLOAT.equals(type) || PsiType.DOUBLE.equals(type)) { diff --git a/java/java-psi-impl/src/messages/JavaErrorMessages.properties b/java/java-psi-impl/src/messages/JavaErrorMessages.properties index d9feb5cbd34b..2ae02e90adbf 100644 --- a/java/java-psi-impl/src/messages/JavaErrorMessages.properties +++ b/java/java-psi-impl/src/messages/JavaErrorMessages.properties @@ -220,6 +220,7 @@ not.a.statement=Not a statement invalid.statement=Invalid statement incompatible.types=Incompatible types. Found: ''{1}'', required: ''{0}'' valid.switch.selector.types=byte, char, short or int +valid.switch.17.selector.types=char, byte, short, int, Character, Byte, Short, Integer, String, or an enum dot.expected.after.super.or.this='.' expected unqualified.super.disallowed=Unqualified super reference is not allowed in extension method