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.KtNamedFunction
|
||||||
import org.jetbrains.kotlin.psi.KtParameterList
|
import org.jetbrains.kotlin.psi.KtParameterList
|
||||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||||
|
import org.jetbrains.kotlin.psi.typeRefHelpers.setReceiverTypeReference
|
||||||
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy
|
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
import org.jetbrains.kotlin.resolve.descriptorUtil.setSingleOverridden
|
||||||
@@ -330,6 +331,9 @@ class ChangeMemberFunctionSignatureFix private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val newParameterList = function.valueParameterList!!.replace(patternFunction.valueParameterList!!) as KtParameterList
|
val newParameterList = function.valueParameterList!!.replace(patternFunction.valueParameterList!!) as KtParameterList
|
||||||
|
if (patternFunction.receiverTypeReference == null && function.receiverTypeReference != null) {
|
||||||
|
function.setReceiverTypeReference(null)
|
||||||
|
}
|
||||||
ShortenReferences.DEFAULT.process(newParameterList)
|
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");
|
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")
|
@TestMetadata("removeOverride.kt")
|
||||||
public void testRemoveOverride() throws Exception {
|
public void testRemoveOverride() throws Exception {
|
||||||
runTest("idea/testData/quickfix/override/nothingToOverride/removeOverride.kt");
|
runTest("idea/testData/quickfix/override/nothingToOverride/removeOverride.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user