diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java index b458f0b15be..44767692efa 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java @@ -330,8 +330,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase { JetProperty property = psiFactory.createProperty(variableText); PsiElement anchor = calculateAnchor(commonParent, commonContainer, allReplaces); if (anchor == null) return; - boolean needBraces = !(commonContainer instanceof JetBlockExpression || - commonContainer instanceof JetClassInitializer); + boolean needBraces = !(commonContainer instanceof JetBlockExpression); if (!needBraces) { property = (JetProperty)commonContainer.addBefore(property, anchor); commonContainer.addBefore(psiFactory.createNewLine(), anchor); @@ -548,7 +547,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase { @Nullable private static PsiElement getContainer(PsiElement place) { - if (place instanceof JetBlockExpression || place instanceof JetClassInitializer) { + if (place instanceof JetBlockExpression) { return place; } while (place != null) { @@ -559,8 +558,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase { } } if (parent instanceof JetBlockExpression - || (parent instanceof JetWhenEntry && place == ((JetWhenEntry) parent).getExpression()) - || parent instanceof JetClassInitializer) { + || (parent instanceof JetWhenEntry && place == ((JetWhenEntry) parent).getExpression())) { return parent; } if (parent instanceof JetDeclarationWithBody && ((JetDeclarationWithBody) parent).getBodyExpression() == place) { @@ -596,7 +594,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase { result = parent; } } - else if (parent instanceof JetClassBody || parent instanceof JetFile || parent instanceof JetClassInitializer) { + else if (parent instanceof JetClassBody || parent instanceof JetFile) { return result; } else if (parent instanceof JetBlockExpression) { diff --git a/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt b/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt new file mode 100644 index 00000000000..ace8099d55b --- /dev/null +++ b/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt @@ -0,0 +1,4 @@ +class C { + deprecated("") + init {} +} \ No newline at end of file diff --git a/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt.conflicts b/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt.conflicts new file mode 100644 index 00000000000..1568c6aea62 --- /dev/null +++ b/idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt.conflicts @@ -0,0 +1 @@ +Cannot refactor in this place diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java index 2d1b47fe1da..507243e2705 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java @@ -145,6 +145,12 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest { doIntroduceVariableTest(fileName); } + @TestMetadata("InsideOfInitializerAnnotation.kt") + public void testInsideOfInitializerAnnotation() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt"); + doIntroduceVariableTest(fileName); + } + @TestMetadata("IntroduceAndCreateBlock.kt") public void testIntroduceAndCreateBlock() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/IntroduceAndCreateBlock.kt");