Create actual: do not generate default parameter values
So #KT-23105 Fixed
This commit is contained in:
@@ -259,6 +259,9 @@ internal fun KtPsiFactory.generateClassOrObjectByExpectedClass(
|
|||||||
it.delete()
|
it.delete()
|
||||||
} else {
|
} else {
|
||||||
it.addModifier(KtTokens.ACTUAL_KEYWORD)
|
it.addModifier(KtTokens.ACTUAL_KEYWORD)
|
||||||
|
if (it is KtFunction) {
|
||||||
|
it.removeParameterDefaultValues()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,6 +346,17 @@ private fun KtPsiFactory.generateFunction(
|
|||||||
if (returnType != null && KotlinBuiltIns.isUnit(returnType)) {
|
if (returnType != null && KotlinBuiltIns.isUnit(returnType)) {
|
||||||
typeReference = null
|
typeReference = null
|
||||||
}
|
}
|
||||||
|
removeParameterDefaultValues()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun KtFunction.removeParameterDefaultValues() {
|
||||||
|
for (valueParameter in valueParameters) {
|
||||||
|
val defaultValue = valueParameter.defaultValue
|
||||||
|
if (defaultValue != null) {
|
||||||
|
val equalsToken = valueParameter.equalsToken
|
||||||
|
valueParameter.deleteChildRange(equalsToken, defaultValue)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// "Create actual interface for module testModule_JVM (JVM)" "true"
|
||||||
|
|
||||||
|
expect interface <caret>I {
|
||||||
|
fun f(p: Int = 1)
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
// "Create actual interface for module testModule_JVM (JVM)" "true"
|
||||||
|
|
||||||
|
expect interface I {
|
||||||
|
fun f(p: Int = 1)
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
// to be created
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// to be created
|
||||||
|
actual interface I {
|
||||||
|
actual fun f(p: Int)
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
// "Create actual class for module testModule_JVM (JVM)" "true"
|
||||||
|
|
||||||
|
expect class <caret>C {
|
||||||
|
fun f(p: Int = 1)
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
// "Create actual class for module testModule_JVM (JVM)" "true"
|
||||||
|
|
||||||
|
expect class C {
|
||||||
|
fun f(p: Int = 1)
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
// to be created
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
// to be created
|
||||||
|
actual class C {
|
||||||
|
actual fun f(p: Int) {}
|
||||||
|
}
|
||||||
+10
@@ -129,6 +129,16 @@ public class QuickFixMultiModuleTestGenerated extends AbstractQuickFixMultiModul
|
|||||||
runTest("idea/testData/multiModuleQuickFix/createVarInExpectClass/");
|
runTest("idea/testData/multiModuleQuickFix/createVarInExpectClass/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("defaultParameterInExpected")
|
||||||
|
public void testDefaultParameterInExpected() throws Exception {
|
||||||
|
runTest("idea/testData/multiModuleQuickFix/defaultParameterInExpected/");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("defaultParameterInExpectedClass")
|
||||||
|
public void testDefaultParameterInExpectedClass() throws Exception {
|
||||||
|
runTest("idea/testData/multiModuleQuickFix/defaultParameterInExpectedClass/");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("deprecatedHeader")
|
@TestMetadata("deprecatedHeader")
|
||||||
public void testDeprecatedHeader() throws Exception {
|
public void testDeprecatedHeader() throws Exception {
|
||||||
runTest("idea/testData/multiModuleQuickFix/deprecatedHeader/");
|
runTest("idea/testData/multiModuleQuickFix/deprecatedHeader/");
|
||||||
|
|||||||
Reference in New Issue
Block a user