FIR IDE: add quick fix to add initializer for MUST_BE_INITIALIZED_OR_BE_ABSTRACT

This commit is contained in:
Tianyu Geng
2021-03-22 17:42:11 -07:00
committed by Ilya Kirillov
parent 72f7405e4a
commit d5ea68c585
28 changed files with 245 additions and 26 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
fun test() {
<caret>val n: Int
}
@@ -1,8 +1,9 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Add getter
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
// ACTION: Make 'n' abstract
// ACTION: Move to constructor
// ERROR: Extension property must have accessors or be abstract
class A {
<caret>val Int.n: Int
@@ -1,7 +1,10 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Add setter
// ACTION: Change to val
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
// ACTION: Remove explicit type specification
// ERROR: Property must be initialized
class A {
<caret>var Int.n: Int
@@ -1,4 +1,5 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Add getter
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
@@ -2,4 +2,5 @@
class A {
<caret>var n: Int
get() = 1
}
}
/* IGNORE_FIR */
@@ -2,4 +2,5 @@
class A {
var n: Int = <selection>0</selection><caret>
get() = 1
}
}
/* IGNORE_FIR */
@@ -2,4 +2,5 @@
class A {
<caret>var n: Int
set(value: Int) {}
}
}
/* IGNORE_FIR */
@@ -2,4 +2,5 @@
class A {
var n: Int = <selection>0</selection><caret>
set(value: Int) {}
}
}
/* IGNORE_FIR */
@@ -1,7 +1,8 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
// ACTION: Remove explicit type specification
class A {
<caret>val n: Int
get() = 1
@@ -1,4 +1,5 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Convert to ordinary property
// ACTION: Make internal
// ACTION: Make private
// ACTION: Make protected
@@ -1,4 +1,5 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Add getter
// ACTION: Make internal
// ACTION: Make private
// ERROR: Extension property must have accessors or be abstract
@@ -1,4 +1,5 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Add getter
// ACTION: Make internal
// ACTION: Make private
// ERROR: Extension property must have accessors or be abstract
+2 -1
View File
@@ -1,2 +1,3 @@
// "Add initializer" "true"
<caret>val n: Int
<caret>val n: Int
/* IGNORE_FIR */
@@ -1,2 +1,3 @@
// "Add initializer" "true"
val n: Int = <selection>0</selection><caret>
val n: Int = <selection>0</selection><caret>
/* IGNORE_FIR */
@@ -1,4 +1,5 @@
// "Add initializer" "true"
// WITH_RUNTIME
class A
<caret>var label: A
<caret>var label: A
/* IGNORE_FIR */
@@ -1,4 +1,5 @@
// "Add initializer" "true"
// WITH_RUNTIME
class A
var label: A = TODO()
var label: A = TODO()
/* IGNORE_FIR */
@@ -1,3 +1,4 @@
// "Add initializer" "true"
<caret>var n: Int
get() = 1
get() = 1
/* IGNORE_FIR */
@@ -1,3 +1,4 @@
// "Add initializer" "true"
var n: Int = <selection>0</selection><caret>
get() = 1
get() = 1
/* IGNORE_FIR */
@@ -1,3 +1,4 @@
// "Add initializer" "true"
<caret>var n: Int
set(value: Int) {}
set(value: Int) {}
/* IGNORE_FIR */
@@ -1,3 +1,4 @@
// "Add initializer" "true"
var n: Int = <selection>0</selection><caret>
set(value: Int) {}
set(value: Int) {}
/* IGNORE_FIR */
@@ -1,5 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// WITH_RUNTIME
// ACTION: Convert to ordinary property
// ACTION: Create test
// ACTION: Make internal
// ACTION: Make private
<caret>val n: Int by lazy { 0 }
@@ -1,5 +1,7 @@
// "class org.jetbrains.kotlin.idea.quickfix.InitializePropertyQuickFixFactory$AddInitializerFix" "false"
// "Add initializer" "false"
// ACTION: Create test
// ACTION: Make internal
// ACTION: Make private
// ACTION: Remove explicit type specification
<caret>val n: Int
get() = 1