"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 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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@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");
|
||||
|
||||
Reference in New Issue
Block a user