diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/JoinDeclarationAndAssignmentIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/JoinDeclarationAndAssignmentIntention.kt index b42c17fe018..81910e6e710 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/JoinDeclarationAndAssignmentIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/JoinDeclarationAndAssignmentIntention.kt @@ -78,6 +78,8 @@ class JoinDeclarationAndAssignmentIntention : SelfTargetingOffsetIndependentInte val initializer = assignment.right ?: return val newInitializer = element.setInitializer(initializer)!! + if (element.hasModifier(KtTokens.LATEINIT_KEYWORD)) element.removeModifier(KtTokens.LATEINIT_KEYWORD) + val initializerBlock = assignment.parent.parent as? KtAnonymousInitializer assignment.delete() if (initializerBlock != null && (initializerBlock.body as? KtBlockExpression)?.isEmpty() == true) { diff --git a/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt b/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt new file mode 100644 index 00000000000..94f4aef1878 --- /dev/null +++ b/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt @@ -0,0 +1,5 @@ +fun foo(a: String, b: String) { + lateinit var c: String + c = a + c = b +} \ No newline at end of file diff --git a/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt.after b/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt.after new file mode 100644 index 00000000000..fd6204f8b92 --- /dev/null +++ b/idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt.after @@ -0,0 +1,4 @@ +fun foo(a: String, b: String) { + var c: String = a + c = b +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index a19157ec334..425999ebfe2 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -9848,6 +9848,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { doTest(fileName); } + @TestMetadata("hasLateinit.kt") + public void testHasLateinit() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/joinDeclarationAndAssignment/hasLateinit.kt"); + doTest(fileName); + } + @TestMetadata("incorrectConditionalAssignment.kt") public void testIncorrectConditionalAssignment() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/joinDeclarationAndAssignment/incorrectConditionalAssignment.kt");