From a232f81e1a1079a3320cb530cfca7bafc7b26eba Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 24 Aug 2020 12:42:07 +0200 Subject: [PATCH] i18n fix assignment: detect concatenations in rOperand GitOrigin-RevId: 62ff07771c6b55807cddee1c0e514540c0b258d7 --- .../quickFix/i18nize/afterAssignment.java | 6 ++++++ .../quickFix/i18nize/beforeAssignment.java | 6 ++++++ .../java/codeInsight/daemon/quickFix/I18nizeTest.java | 1 + .../codeInspection/i18n/I18nizeConcatenationQuickFix.java | 3 ++- 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/afterAssignment.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/beforeAssignment.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/afterAssignment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/afterAssignment.java new file mode 100644 index 000000000000..5199f03d2738 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/afterAssignment.java @@ -0,0 +1,6 @@ +class a { + void foo(String s) { + String desc; + desc = i18nizedExpr; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/beforeAssignment.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/beforeAssignment.java new file mode 100644 index 000000000000..fcdb35630816 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/i18nize/beforeAssignment.java @@ -0,0 +1,6 @@ +class a { + void foo(String s) { + String desc; + desc = "Our " + s + " has"; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/I18nizeTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/I18nizeTest.java index dfea299a2340..a155305d9ab1 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/I18nizeTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/I18nizeTest.java @@ -94,6 +94,7 @@ public class I18nizeTest extends LightJavaCodeInsightTestCase { public void testLongConcat() {doTest();} public void testCharacterLiteral() {doTest();} public void testNestedConcatenation() {doTest();} + public void testAssignment() {doTest();} public void testShortenClassReferences() { doTest("p.MyBundle.message(\"key\")"); diff --git a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nizeConcatenationQuickFix.java b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nizeConcatenationQuickFix.java index 627869b1bb8f..d4b7c119b827 100644 --- a/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nizeConcatenationQuickFix.java +++ b/plugins/java-i18n/src/com/intellij/codeInspection/i18n/I18nizeConcatenationQuickFix.java @@ -17,6 +17,7 @@ import org.jetbrains.uast.*; import org.jetbrains.uast.expressions.UInjectionHost; import org.jetbrains.uast.expressions.UStringConcatenationsFacade; import org.jetbrains.uast.generate.UastCodeGenerationPlugin; +import org.jetbrains.uast.util.UastExpressionUtils; import java.util.ArrayList; import java.util.List; @@ -108,7 +109,7 @@ public class I18nizeConcatenationQuickFix extends I18nizeQuickFix { UElement parent = topExpression.getUastParent(); if (parent instanceof UParenthesizedExpression || parent instanceof UIfExpression || - parent instanceof UPolyadicExpression) { + parent instanceof UPolyadicExpression && !UastExpressionUtils.isAssignment(parent)) { topExpression = (UExpression)parent; } else {