diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt index 6aaeedd179b..7b3f41b1485 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/createImpl/CreateActualFix.kt @@ -137,7 +137,8 @@ sealed class CreateActualFix( val d = DiagnosticFactory.cast(diagnostic, Errors.NO_ACTUAL_FOR_EXPECT) val declaration = d.psiElement as? KtNamedDeclaration ?: return null val compatibility = d.c - if (compatibility.isNotEmpty()) return null + // For function we allow it, because overloads are possible + if (compatibility.isNotEmpty() && declaration !is KtFunction) return null val actualPlatform = d.b.getMultiTargetPlatform() as? MultiTargetPlatform.Specific ?: return null return when (declaration) { is KtClassOrObject -> CreateActualClassFix(declaration, actualPlatform) diff --git a/idea/testData/multiModuleQuickFix/overload/header/header.kt b/idea/testData/multiModuleQuickFix/overload/header/header.kt new file mode 100644 index 00000000000..fb196e31a8e --- /dev/null +++ b/idea/testData/multiModuleQuickFix/overload/header/header.kt @@ -0,0 +1,5 @@ +// "Create actual function for platform JVM" "true" + +expect fun foo(arg: Int): String + +expect fun foo(arg: String): String \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/overload/header/header.kt.after b/idea/testData/multiModuleQuickFix/overload/header/header.kt.after new file mode 100644 index 00000000000..529580f2a79 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/overload/header/header.kt.after @@ -0,0 +1,5 @@ +// "Create actual function for platform JVM" "true" + +expect fun foo(arg: Int): String + +expect fun foo(arg: String): String \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt b/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt new file mode 100644 index 00000000000..f2977b82c64 --- /dev/null +++ b/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt @@ -0,0 +1,3 @@ +// foo: to be implemented + +actual fun foo(arg: String) = arg \ No newline at end of file diff --git a/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt.after b/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt.after new file mode 100644 index 00000000000..692ae78421c --- /dev/null +++ b/idea/testData/multiModuleQuickFix/overload/jvm/foo.kt.after @@ -0,0 +1,7 @@ +// foo: to be implemented + +actual fun foo(arg: String) = arg + +actual fun foo(arg: Int): String { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. +} \ No newline at end of file