diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java index ba1225639122..b6ce2be3304f 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java @@ -872,6 +872,16 @@ public abstract class ExtractionTestGenerated extends AbstractExtractionTest { runTest("testData/refactoring/introduceVariable/javaInnerClassQualifier.kt"); } + @TestMetadata("KTIJ-14455.kt") + public void testKTIJ_14455() throws Exception { + runTest("testData/refactoring/introduceVariable/KTIJ-14455.kt"); + } + + @TestMetadata("KTIJ-9043.kt") + public void testKTIJ_9043() throws Exception { + runTest("testData/refactoring/introduceVariable/KTIJ-9043.kt"); + } + @TestMetadata("kt10808.kt") public void testKt10808() throws Exception { runTest("testData/refactoring/introduceVariable/kt10808.kt"); diff --git a/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt new file mode 100644 index 000000000000..adb5fa8076a1 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt @@ -0,0 +1,5 @@ +class X { + val s0 = "" + val s1 = s0.substring(0) + val s2 = s0.substring(0) +} diff --git a/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt.after b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt.after new file mode 100644 index 000000000000..587db03576df --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt.after @@ -0,0 +1,6 @@ +class X { + val s0 = "" + val substring = s0.substring(0) + val s1 = substring + val s2 = substring +} diff --git a/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt new file mode 100644 index 000000000000..4f4f9650ff68 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt @@ -0,0 +1,4 @@ +class Foo { + val bar = 0 + val baz = 0 +} diff --git a/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt.after b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt.after new file mode 100644 index 000000000000..3fbce9b2918d --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt.after @@ -0,0 +1,5 @@ +class Foo { + val i = 0 + val bar = i + val baz = i +} diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/introduce/KotlinIntroduceVariableHandler.kt b/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/introduce/KotlinIntroduceVariableHandler.kt index 5d5b80f61b79..b4b9beec8376 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/introduce/KotlinIntroduceVariableHandler.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.common/src/org/jetbrains/kotlin/idea/refactoring/introduce/KotlinIntroduceVariableHandler.kt @@ -217,7 +217,7 @@ abstract class KotlinIntroduceVariableHandler : RefactoringActionHandler { } fun KtElement.getContainer(): KtElement? { - if (this is KtBlockExpression) return this + if (this is KtBlockExpression || this is KtClassBody) return this return (parentsWithSelf.zip(parents)).firstOrNull { val (place, parent) = it diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.tests.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/introduce/introduceVariable/K2IntroduceVariableTestGenerated.java b/plugins/kotlin/refactorings/kotlin.refactorings.tests.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/introduce/introduceVariable/K2IntroduceVariableTestGenerated.java index 3231833534d1..037ca7b66dc3 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.tests.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/introduce/introduceVariable/K2IntroduceVariableTestGenerated.java +++ b/plugins/kotlin/refactorings/kotlin.refactorings.tests.k2/test/org/jetbrains/kotlin/idea/k2/refactoring/introduce/introduceVariable/K2IntroduceVariableTestGenerated.java @@ -870,6 +870,16 @@ public abstract class K2IntroduceVariableTestGenerated extends AbstractK2Introdu runTest("../../idea/tests/testData/refactoring/introduceVariable/javaInnerClassQualifier.kt"); } + @TestMetadata("KTIJ-14455.kt") + public void testKTIJ_14455() throws Exception { + runTest("../../idea/tests/testData/refactoring/introduceVariable/KTIJ-14455.kt"); + } + + @TestMetadata("KTIJ-9043.kt") + public void testKTIJ_9043() throws Exception { + runTest("../../idea/tests/testData/refactoring/introduceVariable/KTIJ-9043.kt"); + } + @TestMetadata("kt10808.kt") public void testKt10808() throws Exception { runTest("../../idea/tests/testData/refactoring/introduceVariable/kt10808.kt");