FIR checker: report (expected|unnecessary) lateinit

This commit is contained in:
Jinseong Jeon
2021-03-08 12:35:02 -08:00
committed by Mikhail Glukhikh
parent 815e40620c
commit d2da15e039
25 changed files with 98 additions and 73 deletions
@@ -0,0 +1,6 @@
class Test {
<!UNNECESSARY_LATEINIT!>lateinit<!> var someRunnable: Runnable
init {
someRunnable = Runnable { someRunnable.run() }
}
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
class Test {
lateinit var someRunnable: Runnable
init {
@@ -1,9 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
lateinit var bar: String
constructor(baz: Int) {
bar = ""
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
@@ -1,7 +0,0 @@
class Foo {
lateinit var bar: String
init {
bar = ""
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class Foo {
<!UNNECESSARY_LATEINIT!>lateinit<!> var bar: String
@@ -1,13 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
lateinit var bar: String
constructor() {
bar = ""
}
constructor(baz: Int) {
bar = ""
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
@@ -1,15 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
lateinit var bar: String
constructor() {
bar = ""
}
constructor(a: Int) : this() {
}
constructor(a: Int, b: Int) : this(a) {
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
@@ -0,0 +1,8 @@
class Foo {
<!UNNECESSARY_LATEINIT!>lateinit<!> var bar: String
constructor(baz: Int) {
// At best, we should have error here despite of lateinit
bar += baz
}
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
class Foo {
lateinit var bar: String
@@ -1,13 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
lateinit var bar: String
constructor() {
bar = ""
}
constructor(a: Int) : <!CYCLIC_CONSTRUCTOR_DELEGATION_CALL!>this<!>(a) {
bar = "a"
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
@@ -23,7 +23,7 @@ expect class Foo {
get() = "no"
set(value) {}
lateinit var lateinitVar: String
<!EXPECTED_LATEINIT_PROPERTY!>lateinit<!> var lateinitVar: String
val delegated: String by <!EXPECTED_DELEGATED_PROPERTY!>Delegate<!>
}
@@ -28,7 +28,7 @@ expect var customAccessorVar: String
expect const val constVal: Int
expect lateinit var lateinitVar: String
expect <!EXPECTED_LATEINIT_PROPERTY!>lateinit<!> var lateinitVar: String
expect val delegated: String by <!EXPECTED_DELEGATED_PROPERTY!>Delegate<!>
object Delegate { operator fun getValue(x: Any?, y: Any?): String = "" }