Fix KNPE in "introduce variable", add some name conflict introduce tests

So #KT-21530 Fixed
This commit is contained in:
Mikhail Glukhikh
2017-11-30 13:33:16 +03:00
parent 20b48ab90c
commit 7118a4bf80
10 changed files with 82 additions and 1 deletions
@@ -529,7 +529,7 @@ object KotlinIntroduceVariableHandler : RefactoringActionHandler {
else {
expression.parent as KtElement
}
var commonContainer = commonParent.getContainer()!!
var commonContainer = commonParent as? KtFile ?: commonParent.getContainer()!!
if (commonContainer != container && container.isAncestor(commonContainer, true)) {
commonContainer = container
}
@@ -0,0 +1,6 @@
// EXTRACTION_TARGET: property with initializer
fun test() = "123"
val f = <selection>test()</selection> + "456"
val x = test()
@@ -0,0 +1,8 @@
// EXTRACTION_TARGET: property with initializer
fun test() = "123"
private val s = test()
val f = s + "456"
val x = s
@@ -0,0 +1,8 @@
fun test() = "123"
open class First(val s: String)
object Second : First(<selection>test()</selection> + "456")
fun foo(test: String) {
val x = test()
}
@@ -0,0 +1,11 @@
fun test() = "123"
open class First(val s: String)
val test1 = test()
object Second : First(test1 + "456")
fun foo(test: String) {
val x = test1
}
@@ -0,0 +1,4 @@
fun test() = "123"
val f = <selection>test()</selection> + "456"
val x = test()
@@ -0,0 +1,5 @@
fun test() = "123"
val test = test()
val f = test + "456"
val x = test
@@ -0,0 +1,7 @@
fun test() = "123"
val f = <selection>test()</selection> + "456"
fun foo(test: String) {
val x = test()
}
@@ -0,0 +1,8 @@
fun test() = "123"
val test1 = test()
val f = test1 + "456"
fun foo(test: String) {
val x = test1
}
@@ -236,6 +236,24 @@ public class ExtractionTestGenerated extends AbstractExtractionTest {
doIntroduceVariableTest(fileName);
}
@TestMetadata("kt21530_withConstructorParam.kt")
public void testKt21530_withConstructorParam() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/kt21530_withConstructorParam.kt");
doIntroduceVariableTest(fileName);
}
@TestMetadata("kt21530_withGlobal.kt")
public void testKt21530_withGlobal() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/kt21530_withGlobal.kt");
doIntroduceVariableTest(fileName);
}
@TestMetadata("kt21530_withParam.kt")
public void testKt21530_withParam() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/kt21530_withParam.kt");
doIntroduceVariableTest(fileName);
}
@TestMetadata("LoopRange.kt")
public void testLoopRange() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/LoopRange.kt");
@@ -3173,6 +3191,12 @@ public class ExtractionTestGenerated extends AbstractExtractionTest {
doIntroducePropertyTest(fileName);
}
@TestMetadata("kt21530.kt")
public void testKt21530() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceProperty/kt21530.kt");
doIntroducePropertyTest(fileName);
}
@TestMetadata("primaryConstructorParameterReference.kt")
public void testPrimaryConstructorParameterReference() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceProperty/primaryConstructorParameterReference.kt");