From be7f7c9c6820ba2e80320128cf6eb6d42e01c1e0 Mon Sep 17 00:00:00 2001 From: Petr Kudriavtsev Date: Mon, 15 Jan 2018 15:02:36 +0300 Subject: [PATCH] Additional fix for IDEABKL-4743 Automatic placement of ";" characters -- after review improvement 4: added test cases for string/char literals --- ...colonBeforeRightParenInLiterals_after.java | 26 +++++++++++++++++++ ...olonBeforeRightParenInLiterals_before.java | 26 +++++++++++++++++++ .../java/codeInsight/JavaTypingTest.java | 4 +++ 3 files changed, 56 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_after.java create mode 100644 java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_before.java diff --git a/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_after.java b/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_after.java new file mode 100644 index 000000000000..997f0cb2e2bc --- /dev/null +++ b/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_after.java @@ -0,0 +1,26 @@ +class Foo { + + int takesCharSequence(CharSequence str) { + return 0; + } + + int takesChar(char chr) { + return 0; + } + + void testOutside() { + // should be moved + takesCharSequence(""/*typehere*/); + takesChar(''/*typehere*/); + } + + void testInside() { + // should not be moved + takesCharSequence("/*typehere*/;") + takesChar('/*typehere*/;') + } + + void testInComment() { + // some comment blabla(/*typehere*/;) + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_before.java b/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_before.java new file mode 100644 index 000000000000..d151b7cd95cb --- /dev/null +++ b/java/java-tests/testData/codeInsight/typing/semicolonBeforeRightParenInLiterals_before.java @@ -0,0 +1,26 @@ +class Foo { + + int takesCharSequence(CharSequence str) { + return 0; + } + + int takesChar(char chr) { + return 0; + } + + void testOutside() { + // should be moved + takesCharSequence(""/*typehere*/) + takesChar(''/*typehere*/) + } + + void testInside() { + // should not be moved + takesCharSequence("/*typehere*/") + takesChar('/*typehere*/') + } + + void testInComment() { + // some comment blabla(/*typehere*/) + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaTypingTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaTypingTest.java index ac9a24b2e460..0e5ab656e789 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaTypingTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/JavaTypingTest.java @@ -124,6 +124,10 @@ public class JavaTypingTest extends LightPlatformCodeInsightFixtureTestCase { doMultiTypeTest(';'); } + public void testSemicolonBeforeRightParenInLiterals() { + doMultiTypeTest(';'); + } + public void testCommaAfterDefaultAnnotationArgumentWhenArrayIsExpected() { doTest(','); }