diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt index 0573f14d391..97fb908f765 100644 --- a/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -141,6 +141,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder { betweenInside(FUN_KEYWORD, IDENTIFIER, FUN).spaces(1) betweenInside(FUN_KEYWORD, TYPE_REFERENCE, FUN).spaces(1) + betweenInside(TYPE_PARAMETER_LIST, TYPE_REFERENCE, FUN).spaces(1) betweenInside(TYPE_PARAMETER_LIST, IDENTIFIER, FUN).spaces(1) betweenInside(FUN_KEYWORD, VALUE_PARAMETER_LIST, FUN).spacing(0, 0, 0, false, 0) betweenInside(TYPE_REFERENCE, DOT, FUN).spacing(0, 0, 0, false, 0) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateTypeParameterListFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateTypeParameterListFix.kt index 93682c812a8..b0d11abeaf9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateTypeParameterListFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/migration/MigrateTypeParameterListFix.kt @@ -36,7 +36,7 @@ class MigrateTypeParameterListFix(typeParameterList: JetTypeParameterList) override fun invoke(project: Project, editor: Editor?, file: JetFile) { val function = element.getStrictParentOfType() ?: return - function.addBefore(element, function.nameIdentifier) + function.addBefore(element, function.receiverTypeReference ?: function.nameIdentifier) element.delete() } diff --git a/idea/testData/quickfix/migration/typeParameterList/extension.kt b/idea/testData/quickfix/migration/typeParameterList/extension.kt new file mode 100644 index 00000000000..65d13e28436 --- /dev/null +++ b/idea/testData/quickfix/migration/typeParameterList/extension.kt @@ -0,0 +1,5 @@ +// "Migrate type parameter list syntax" "true" + +class Foo + +fun Foo.f() {} diff --git a/idea/testData/quickfix/migration/typeParameterList/extension.kt.after b/idea/testData/quickfix/migration/typeParameterList/extension.kt.after new file mode 100644 index 00000000000..ac8fba15c2e --- /dev/null +++ b/idea/testData/quickfix/migration/typeParameterList/extension.kt.after @@ -0,0 +1,5 @@ +// "Migrate type parameter list syntax" "true" + +class Foo + +fun Foo.f() {} diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 25e3c775a3a..5e6e63b9495 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -4356,6 +4356,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/typeParameterList/basic.kt"); doTest(fileName); } + + @TestMetadata("extension.kt") + public void testExtension() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/typeParameterList/extension.kt"); + doTest(fileName); + } } }