Remove redundant receiver in "Change function signature" quick fix
So #KT-12298 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
0cb907d637
commit
ddf647ae96
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtParameterList
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
import org.jetbrains.kotlin.psi.typeRefHelpers.setReceiverTypeReference
|
||||
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||
@@ -330,6 +331,9 @@ class ChangeMemberFunctionSignatureFix private constructor(
|
||||
}
|
||||
|
||||
val newParameterList = function.valueParameterList!!.replace(patternFunction.valueParameterList!!) as KtParameterList
|
||||
if (patternFunction.receiverTypeReference == null && function.receiverTypeReference != null) {
|
||||
function.setReceiverTypeReference(null)
|
||||
}
|
||||
ShortenReferences.DEFAULT.process(newParameterList)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'fun x(s: String)'" "true"
|
||||
open class A {
|
||||
open fun x(s: String) {}
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
<caret>override fun String.x() {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'fun x(s: String)'" "true"
|
||||
open class A {
|
||||
open fun x(s: String) {}
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
<caret>override fun x(s: String) {}
|
||||
}
|
||||
@@ -8362,6 +8362,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
runTest("idea/testData/quickfix/override/nothingToOverride/overrideJavaMethod.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("removeFunctionReciever.kt")
|
||||
public void testRemoveFunctionReciever() throws Exception {
|
||||
runTest("idea/testData/quickfix/override/nothingToOverride/removeFunctionReciever.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("removeOverride.kt")
|
||||
public void testRemoveOverride() throws Exception {
|
||||
runTest("idea/testData/quickfix/override/nothingToOverride/removeOverride.kt");
|
||||
|
||||
Reference in New Issue
Block a user