FIR checker: report uninitialized member/extension properties
This commit is contained in:
committed by
Dmitriy Novozhilov
parent
e8028e7825
commit
e009b71f88
@@ -8,8 +8,8 @@ class KotlinType
|
||||
class KClassValue(value: Value) : ConstantValue<KClassValue.Value>(value) {
|
||||
sealed class Value {
|
||||
data class NormalClass(val value: ClassLiteralValue) : Value() {
|
||||
val classId: ClassId
|
||||
val arrayDimensions: Int
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val classId: ClassId<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val arrayDimensions: Int<!>
|
||||
}
|
||||
|
||||
data class LocalClass(val type: KotlinType) : Value()
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@ annotation class A() {
|
||||
<!ANNOTATION_CLASS_MEMBER!><!PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED!>constructor(s: Nothing?)<!> {}<!>
|
||||
<!ANNOTATION_CLASS_MEMBER!>init {}<!>
|
||||
<!ANNOTATION_CLASS_MEMBER!>fun foo() {}<!>
|
||||
<!ANNOTATION_CLASS_MEMBER!>val bar: Nothing?<!>
|
||||
<!ANNOTATION_CLASS_MEMBER, MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val bar: Nothing?<!>
|
||||
<!ANNOTATION_CLASS_MEMBER!>val baz get() = Unit<!>
|
||||
}
|
||||
|
||||
+1
-1
@@ -10,6 +10,6 @@ class A {
|
||||
class B {
|
||||
val field: String = ""
|
||||
|
||||
val x: Int
|
||||
<!MUST_BE_INITIALIZED!>val x: Int<!>
|
||||
get() = field.<!UNRESOLVED_REFERENCE!>length<!> // should be an error
|
||||
}
|
||||
|
||||
@@ -15,5 +15,5 @@ class SomeClass : SomeInterface {
|
||||
get() = true
|
||||
set(value) {}
|
||||
|
||||
var fau: Double
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var fau: Double<!>
|
||||
}
|
||||
|
||||
+6
-6
@@ -14,10 +14,10 @@ class A {
|
||||
}
|
||||
|
||||
class Property {
|
||||
var var1: String
|
||||
var var2: String
|
||||
var var3: Int
|
||||
<!EXPOSED_PROPERTY_TYPE{LT}!>var <!EXPOSED_PROPERTY_TYPE{PSI}!>var4<!>: A.AInnerPrivate<!>
|
||||
var var5: A.AInnerPublic
|
||||
<!EXPOSED_PROPERTY_TYPE{LT}!>var <!EXPOSED_PROPERTY_TYPE{PSI}!>var6<!>: A.AInnerProtectedEnum<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var1: String<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var2: String<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var3: Int<!>
|
||||
<!EXPOSED_PROPERTY_TYPE{LT}, MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE{PSI}!>var4<!>: A.AInnerPrivate<!>
|
||||
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var var5: A.AInnerPublic<!>
|
||||
<!EXPOSED_PROPERTY_TYPE{LT}, MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>var <!EXPOSED_PROPERTY_TYPE{PSI}!>var6<!>: A.AInnerProtectedEnum<!>
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
private var Int.readOnlyWrapper: CharSequence? get() = null
|
||||
private var Int.mutableWrapper: CharSequence? get() = null
|
||||
<!MUST_BE_INITIALIZED!>private var Int.readOnlyWrapper: CharSequence?<!> get() = null
|
||||
<!MUST_BE_INITIALIZED!>private var Int.mutableWrapper: CharSequence?<!> get() = null
|
||||
|
||||
fun main(x: Int) {
|
||||
val x = if (x > 1) x::readOnlyWrapper else x::mutableWrapper
|
||||
|
||||
Reference in New Issue
Block a user