From ab51e442f6ef0f827a7a2a8da842e468d4fb0c60 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Tue, 2 Sep 2025 18:06:03 +0200 Subject: [PATCH] [java-inspections] IDEA-378586 Impossible to compute constant for '\'' GitOrigin-RevId: ba58288dab3e558c1a1fe4529e8abe4ef26482fa --- .../siyeh/ig/style/ConstantExpressionInspection.java | 2 +- .../quickFix/constantExpression/afterCharQuote.java | 12 ++++++++++++ .../quickFix/constantExpression/beforeCharQuote.java | 12 ++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/afterCharQuote.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/beforeCharQuote.java diff --git a/java/java-analysis-impl/src/com/siyeh/ig/style/ConstantExpressionInspection.java b/java/java-analysis-impl/src/com/siyeh/ig/style/ConstantExpressionInspection.java index c5d5bc601438..a67ddb238365 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/style/ConstantExpressionInspection.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/style/ConstantExpressionInspection.java @@ -162,7 +162,7 @@ public final class ConstantExpressionInspection extends AbstractBaseJavaLocalIns newExpression = '"' + StringUtil.escapeStringCharacters(string) + '"'; } else if (value instanceof Character) { - newExpression = '\'' + StringUtil.escapeStringCharacters(value.toString()) + '\''; + newExpression = '\'' + StringUtil.escapeCharCharacters(value.toString()) + '\''; } else if (value instanceof Long) { newExpression = value.toString() + 'L'; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/afterCharQuote.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/afterCharQuote.java new file mode 100644 index 000000000000..fe09f85d5192 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/afterCharQuote.java @@ -0,0 +1,12 @@ +// "Compute constant value of 'SINGLE_QUOTE'" "true-preview" + +class ConstantCast { + public static final char SINGLE_QUOTE = '\''; + + static void doSomething(Object o) { + } + + public static void main(String[] args) { + doSomething('\''); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/beforeCharQuote.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/beforeCharQuote.java new file mode 100644 index 000000000000..11a4fdfc821e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/constantExpression/beforeCharQuote.java @@ -0,0 +1,12 @@ +// "Compute constant value of 'SINGLE_QUOTE'" "true-preview" + +class ConstantCast { + public static final char SINGLE_QUOTE = '\''; + + static void doSomething(Object o) { + } + + public static void main(String[] args) { + doSomething(SINGLE_QUOTE); + } +} \ No newline at end of file