"Join declaration and assignment" should remove 'lateinit' for 'var' #KT-21603 Fixed
This commit is contained in:
@@ -78,6 +78,8 @@ class JoinDeclarationAndAssignmentIntention : SelfTargetingOffsetIndependentInte
|
|||||||
val initializer = assignment.right ?: return
|
val initializer = assignment.right ?: return
|
||||||
val newInitializer = element.setInitializer(initializer)!!
|
val newInitializer = element.setInitializer(initializer)!!
|
||||||
|
|
||||||
|
if (element.hasModifier(KtTokens.LATEINIT_KEYWORD)) element.removeModifier(KtTokens.LATEINIT_KEYWORD)
|
||||||
|
|
||||||
val initializerBlock = assignment.parent.parent as? KtAnonymousInitializer
|
val initializerBlock = assignment.parent.parent as? KtAnonymousInitializer
|
||||||
assignment.delete()
|
assignment.delete()
|
||||||
if (initializerBlock != null && (initializerBlock.body as? KtBlockExpression)?.isEmpty() == true) {
|
if (initializerBlock != null && (initializerBlock.body as? KtBlockExpression)?.isEmpty() == true) {
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
fun foo(a: String, b: String) {
|
||||||
|
lateinit var c: String<caret>
|
||||||
|
c = a
|
||||||
|
c = b
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fun foo(a: String, b: String) {
|
||||||
|
var c<selection>: String</selection><caret> = a
|
||||||
|
c = b
|
||||||
|
}
|
||||||
@@ -9848,6 +9848,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("incorrectConditionalAssignment.kt")
|
||||||
public void testIncorrectConditionalAssignment() throws Exception {
|
public void testIncorrectConditionalAssignment() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/joinDeclarationAndAssignment/incorrectConditionalAssignment.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/joinDeclarationAndAssignment/incorrectConditionalAssignment.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user