Rename: Allow renaming class by constructor delegation call referencing primary constructor
#KT-8860 Fixed
This commit is contained in:
@@ -175,6 +175,7 @@
|
|||||||
- [`KT-7851`](https://youtrack.jetbrains.com/issue/KT-7851) Respect naming conventions in automatic variable rename
|
- [`KT-7851`](https://youtrack.jetbrains.com/issue/KT-7851) Respect naming conventions in automatic variable rename
|
||||||
|
|
||||||
###### Issues fixed
|
###### Issues fixed
|
||||||
|
- [`KT-8860`](https://youtrack.jetbrains.com/issue/KT-8860) Allow renaming class by constructor delegation call referencing primary constructor
|
||||||
- [`KT-9156`](https://youtrack.jetbrains.com/issue/KT-9156) Quote non-identifier names in Kotlin references
|
- [`KT-9156`](https://youtrack.jetbrains.com/issue/KT-9156) Quote non-identifier names in Kotlin references
|
||||||
- [`KT-9157`](https://youtrack.jetbrains.com/issue/KT-9157) Fixed in-place rename of Kotlin expression referring Java declaration
|
- [`KT-9157`](https://youtrack.jetbrains.com/issue/KT-9157) Fixed in-place rename of Kotlin expression referring Java declaration
|
||||||
- [`KT-10713`](https://youtrack.jetbrains.com/issue/KT-10713) Skip read-only declarations when renaming parameters
|
- [`KT-10713`](https://youtrack.jetbrains.com/issue/KT-10713) Skip read-only declarations when renaming parameters
|
||||||
|
|||||||
+2
-5
@@ -25,10 +25,7 @@ import com.intellij.psi.PsiFile
|
|||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import com.intellij.refactoring.rename.RenameHandler
|
import com.intellij.refactoring.rename.RenameHandler
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils
|
||||||
import org.jetbrains.kotlin.psi.KtBlockExpression
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.KtParameterList
|
|
||||||
import org.jetbrains.kotlin.psi.KtSecondaryConstructor
|
|
||||||
import org.jetbrains.kotlin.psi.KtValueArgumentList
|
|
||||||
|
|
||||||
|
|
||||||
class RenameOnSecondaryConstructorHandler : RenameHandler {
|
class RenameOnSecondaryConstructorHandler : RenameHandler {
|
||||||
@@ -40,7 +37,7 @@ class RenameOnSecondaryConstructorHandler : RenameHandler {
|
|||||||
|
|
||||||
val element = PsiTreeUtil.findElementOfClassAtOffsetWithStopSet(
|
val element = PsiTreeUtil.findElementOfClassAtOffsetWithStopSet(
|
||||||
file, editor.caretModel.offset, KtSecondaryConstructor::class.java, false,
|
file, editor.caretModel.offset, KtSecondaryConstructor::class.java, false,
|
||||||
KtBlockExpression::class.java, KtValueArgumentList::class.java, KtParameterList::class.java
|
KtBlockExpression::class.java, KtValueArgumentList::class.java, KtParameterList::class.java, KtConstructorDelegationCall::class.java
|
||||||
)
|
)
|
||||||
return element != null
|
return element != null
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
class Bar constructor(p: Int) {
|
||||||
|
constructor(p: Int) : this(p + 1)
|
||||||
|
}
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
class Foo constructor(p: Int) {
|
||||||
|
constructor(p: Int) : /*rename*/this(p + 1)
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"type": "MARKED_ELEMENT",
|
||||||
|
"mainFile": "test.kt",
|
||||||
|
"newName": "Bar"
|
||||||
|
}
|
||||||
@@ -125,6 +125,12 @@ public class RenameTestGenerated extends AbstractRenameTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("renameClassByRefInConstructorDelegationCall/renameClassByRefInConstructorDelegationCall.test")
|
||||||
|
public void testRenameClassByRefInConstructorDelegationCall_RenameClassByRefInConstructorDelegationCall() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/renameClassByRefInConstructorDelegationCall/renameClassByRefInConstructorDelegationCall.test");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("renameClassWithAutoVarConventions/renameClassWithAutoVarConventions.test")
|
@TestMetadata("renameClassWithAutoVarConventions/renameClassWithAutoVarConventions.test")
|
||||||
public void testRenameClassWithAutoVarConventions_RenameClassWithAutoVarConventions() throws Exception {
|
public void testRenameClassWithAutoVarConventions_RenameClassWithAutoVarConventions() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/renameClassWithAutoVarConventions/renameClassWithAutoVarConventions.test");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/rename/renameClassWithAutoVarConventions/renameClassWithAutoVarConventions.test");
|
||||||
|
|||||||
Reference in New Issue
Block a user