FIR checker: report uninitialized member/extension properties

This commit is contained in:
Jinseong Jeon
2021-02-23 14:33:44 -08:00
committed by Dmitriy Novozhilov
parent e8028e7825
commit e009b71f88
63 changed files with 487 additions and 230 deletions
@@ -2,17 +2,17 @@ package abstract
abstract class MyAbstractClass() {
//properties
val a: Int
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val a: Int<!>
val a1: Int = 1
abstract val a2: Int
abstract val a3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>1<!>
var b: Int private set
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var b: Int<!> private set
var b1: Int = 0; private set
abstract var b2: Int <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
abstract var b3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY!>private<!> set
var c: Int set(v: Int) { field = v }
<!MUST_BE_INITIALIZED!>var c: Int<!> set(v: Int) { field = v }
var c1: Int = 0; set(v: Int) { field = v }
abstract var c2: Int <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
abstract var c3: Int = <!ABSTRACT_PROPERTY_WITH_INITIALIZER!>0<!>; <!ABSTRACT_PROPERTY_WITH_SETTER!>set(v: Int) { field = v }<!>
@@ -29,17 +29,18 @@ abstract class MyAbstractClass() {
<!ABSTRACT_FUNCTION_WITH_BODY!>abstract<!> fun j() {}
//property accessors
var i: Int abstract get abstract set
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var i: Int<!> abstract get abstract set
var i1: Int = 0; abstract get abstract set
var j: Int get() = i; abstract set
var j1: Int get() = i; abstract set
<!MUST_BE_INITIALIZED!>var j: Int<!> get() = i; abstract set
<!MUST_BE_INITIALIZED!>var j1: Int<!> get() = i; abstract set
var k: Int abstract set
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var k: Int<!> abstract set
var k1: Int = 0; abstract set
var l: Int abstract get abstract set
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var l: Int<!> abstract get abstract set
var l1: Int = 0; abstract get abstract set
var n: Int abstract get abstract set(v: Int) {}
<!MUST_BE_INITIALIZED!>var n: Int<!> abstract get abstract set(v: Int) {}
}