From 6db698f5aaa291d4f393c14186f37e8dfefdbe0e Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 2 Feb 2017 18:01:49 +0300 Subject: [PATCH] Correct order added for 'suspend' modifier #KT-16104 Fixed --- .../jetbrains/kotlin/psi/addRemoveModifier.kt | 1 + .../quickfix/modifiers/suspend/open.kt | 9 +++++++++ .../quickfix/modifiers/suspend/open.kt.after | 9 +++++++++ .../quickfix/modifiers/suspend/override.kt | 13 +++++++++++++ .../modifiers/suspend/override.kt.after | 13 +++++++++++++ .../quickfix/modifiers/suspend/public.kt | 6 ++++++ .../quickfix/modifiers/suspend/public.kt.after | 6 ++++++ .../idea/quickfix/QuickFixTestGenerated.java | 18 ++++++++++++++++++ 8 files changed, 75 insertions(+) create mode 100644 idea/testData/quickfix/modifiers/suspend/open.kt create mode 100644 idea/testData/quickfix/modifiers/suspend/open.kt.after create mode 100644 idea/testData/quickfix/modifiers/suspend/override.kt create mode 100644 idea/testData/quickfix/modifiers/suspend/override.kt.after create mode 100644 idea/testData/quickfix/modifiers/suspend/public.kt create mode 100644 idea/testData/quickfix/modifiers/suspend/public.kt.after diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt index d6ab4667209..ed20964010f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt @@ -123,5 +123,6 @@ private val MODIFIERS_TO_REPLACE = mapOf( private val MODIFIERS_ORDER = listOf(PUBLIC_KEYWORD, PROTECTED_KEYWORD, PRIVATE_KEYWORD, INTERNAL_KEYWORD, FINAL_KEYWORD, OPEN_KEYWORD, ABSTRACT_KEYWORD, OVERRIDE_KEYWORD, + SUSPEND_KEYWORD, INNER_KEYWORD, ENUM_KEYWORD, COMPANION_KEYWORD, INFIX_KEYWORD, OPERATOR_KEYWORD, DATA_KEYWORD) diff --git a/idea/testData/quickfix/modifiers/suspend/open.kt b/idea/testData/quickfix/modifiers/suspend/open.kt new file mode 100644 index 00000000000..ae6375fc0fc --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/open.kt @@ -0,0 +1,9 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} + +open class A { + open fun bar() { + foo() + } +} diff --git a/idea/testData/quickfix/modifiers/suspend/open.kt.after b/idea/testData/quickfix/modifiers/suspend/open.kt.after new file mode 100644 index 00000000000..2ccb4c3f0fe --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/open.kt.after @@ -0,0 +1,9 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} + +open class A { + open suspend fun bar() { + foo() + } +} diff --git a/idea/testData/quickfix/modifiers/suspend/override.kt b/idea/testData/quickfix/modifiers/suspend/override.kt new file mode 100644 index 00000000000..3cc8756fd8f --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/override.kt @@ -0,0 +1,13 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} + +open class A { + open suspend fun bar() {} +} + +class B : A() { + override fun bar() { + foo() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/suspend/override.kt.after b/idea/testData/quickfix/modifiers/suspend/override.kt.after new file mode 100644 index 00000000000..ba9cbe1a9b3 --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/override.kt.after @@ -0,0 +1,13 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} + +open class A { + open suspend fun bar() {} +} + +class B : A() { + override suspend fun bar() { + foo() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/suspend/public.kt b/idea/testData/quickfix/modifiers/suspend/public.kt new file mode 100644 index 00000000000..7b403ee4409 --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/public.kt @@ -0,0 +1,6 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} +public fun bar() { + foo() +} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/suspend/public.kt.after b/idea/testData/quickfix/modifiers/suspend/public.kt.after new file mode 100644 index 00000000000..0220c02e74c --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/public.kt.after @@ -0,0 +1,6 @@ +// "Make bar suspend" "true" + +suspend fun foo() {} +public suspend fun bar() { + foo() +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 3202226be3a..1c842ac695c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -6770,6 +6770,24 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("open.kt") + public void testOpen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/suspend/open.kt"); + doTest(fileName); + } + + @TestMetadata("override.kt") + public void testOverride() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/suspend/override.kt"); + doTest(fileName); + } + + @TestMetadata("public.kt") + public void testPublic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/suspend/public.kt"); + doTest(fileName); + } + @TestMetadata("startCoroutine.kt") public void testStartCoroutine() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/modifiers/suspend/startCoroutine.kt");