diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/ktPsiUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/ktPsiUtil.kt index ed8ac919e10..104e8a5e9a2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/ktPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/ktPsiUtil.kt @@ -460,7 +460,7 @@ fun KtExpression.getOutermostParenthesizerOrThis(): KtExpression { fun PsiElement.isFunctionalExpression(): Boolean = this is KtNamedFunction && nameIdentifier == null -private val BAD_NEIGHBOUR_FOR_SIMPLE_TEMPLATE_ENTRY_PATTERN = Regex("[a-zA-Z0-9_].*") +private val BAD_NEIGHBOUR_FOR_SIMPLE_TEMPLATE_ENTRY_PATTERN = Regex("([a-zA-Z0-9_]|[^\\p{ASCII}]).*") fun canPlaceAfterSimpleNameEntry(element: PsiElement?): Boolean { val entryText = element?.text ?: return true diff --git a/idea/testData/intentions/removeCurlyBracesFromTemplate/necessaryBrackets6.kt b/idea/testData/intentions/removeCurlyBracesFromTemplate/necessaryBrackets6.kt new file mode 100644 index 00000000000..d2631e4010a --- /dev/null +++ b/idea/testData/intentions/removeCurlyBracesFromTemplate/necessaryBrackets6.kt @@ -0,0 +1,5 @@ +// IS_APPLICABLE: false +fun foo() { + val x = 3 + val y = "${x}コトリン" +} \ No newline at end of file diff --git a/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt new file mode 100644 index 00000000000..4724b5f36ed --- /dev/null +++ b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt @@ -0,0 +1,4 @@ +// "Remove 'toString()' call" "true" + +val foo = "test" +val bar = "${foo.toString()}_" \ No newline at end of file diff --git a/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt.after b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt.after new file mode 100644 index 00000000000..0bd3e81b843 --- /dev/null +++ b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt.after @@ -0,0 +1,4 @@ +// "Remove 'toString()' call" "true" + +val foo = "test" +val bar = "${foo}_" \ No newline at end of file diff --git a/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt new file mode 100644 index 00000000000..e250e4ae303 --- /dev/null +++ b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt @@ -0,0 +1,4 @@ +// "Remove 'toString()' call" "true" + +val foo = "test" +val bar = "${foo.toString()}コトリン" \ No newline at end of file diff --git a/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt.after b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt.after new file mode 100644 index 00000000000..532875ac3c0 --- /dev/null +++ b/idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt.after @@ -0,0 +1,4 @@ +// "Remove 'toString()' call" "true" + +val foo = "test" +val bar = "${foo}コトリン" \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 5ae9c43d843..2b59dad1718 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -12620,6 +12620,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { doTest(fileName); } + @TestMetadata("necessaryBrackets6.kt") + public void testNecessaryBrackets6() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeCurlyBracesFromTemplate/necessaryBrackets6.kt"); + doTest(fileName); + } + @TestMetadata("unnecessaryBrackets1.kt") public void testUnnecessaryBrackets1() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/removeCurlyBracesFromTemplate/unnecessaryBrackets1.kt"); diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 5c0631ba9f7..9c7ef95138d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -8879,6 +8879,18 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("necessaryBrackets1.kt") + public void testNecessaryBrackets1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets1.kt"); + doTest(fileName); + } + + @TestMetadata("necessaryBrackets2.kt") + public void testNecessaryBrackets2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeToStringInStringTemplate/necessaryBrackets2.kt"); + doTest(fileName); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeToStringInStringTemplate/simple.kt");