FIR checker: report UNINITIALIZED_ENUM_(ENTRY|COMPANION)
This commit is contained in:
committed by
Mikhail Glukhikh
parent
ad9b962536
commit
619360fe4d
+26
@@ -27,6 +27,7 @@ enum class Fruit(personal: Int) {
|
||||
}
|
||||
|
||||
val score = personal + <!UNINITIALIZED_VARIABLE!>common<!>
|
||||
val score2 = { personal + common }()
|
||||
}
|
||||
|
||||
// Another example from KT-11769
|
||||
@@ -53,3 +54,28 @@ enum class EnumCompanion3(val x: Int) {
|
||||
|
||||
companion object
|
||||
}
|
||||
|
||||
interface ExtractableCodeDescriptor {
|
||||
fun isInterface(): Boolean
|
||||
}
|
||||
|
||||
enum class ExtractionTarget(val targetName: String) {
|
||||
FUNCTION("function") {
|
||||
override fun isAvailable(descriptor: ExtractableCodeDescriptor) = true
|
||||
},
|
||||
|
||||
LAZY_PROPERTY("lazy property") {
|
||||
override fun isAvailable(descriptor: ExtractableCodeDescriptor): Boolean {
|
||||
// Should not report UNINITIALIZED_ENUM_COMPANION
|
||||
return checkNotTrait(descriptor)
|
||||
}
|
||||
};
|
||||
|
||||
abstract fun isAvailable(descriptor: ExtractableCodeDescriptor): Boolean
|
||||
|
||||
companion object {
|
||||
fun checkNotTrait(descriptor: ExtractableCodeDescriptor): Boolean {
|
||||
return !descriptor.isInterface()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user