[FE] Always report UNINITIALIZED_ENUM_COMPANION_WARNING
^KT-54055
This commit is contained in:
committed by
Space
parent
3a5a6e5587
commit
a2c12aa711
-16
@@ -67,22 +67,6 @@ object EnumCompanionInEnumConstructorCallChecker : DeclarationChecker {
|
|||||||
val dispatchIsCompanion = dispatchDescriptor == companionDescriptor
|
val dispatchIsCompanion = dispatchDescriptor == companionDescriptor
|
||||||
val extensionIsCompanion = extensionDescriptor == companionDescriptor
|
val extensionIsCompanion = extensionDescriptor == companionDescriptor
|
||||||
|
|
||||||
val dispatchIsImplicit = resolvedCall.dispatchReceiver is ImplicitClassReceiver
|
|
||||||
val extensionIsImplicit = resolvedCall.extensionReceiver is ImplicitClassReceiver
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ControlFlowInformationProviderImpl already reports UNINITIALIZED_ENUM_COMPANION for extension function calls
|
|
||||||
* with implicit companion receiver, so we should skip reporting a warning
|
|
||||||
*
|
|
||||||
* If feature is enabled then ControlFlowInformationProviderImpl won't report an error, to keep all checks
|
|
||||||
* in one place (in this checker)
|
|
||||||
*/
|
|
||||||
if (
|
|
||||||
!reportError &&
|
|
||||||
expression is KtCallExpression &&
|
|
||||||
(dispatchIsCompanion && dispatchIsImplicit || extensionIsCompanion && extensionIsImplicit)
|
|
||||||
) return false
|
|
||||||
|
|
||||||
if (dispatchIsCompanion || extensionIsCompanion) {
|
if (dispatchIsCompanion || extensionIsCompanion) {
|
||||||
val reportOn = when (val receiverExpression = (expression as? KtQualifiedExpression)?.receiverExpression) {
|
val reportOn = when (val receiverExpression = (expression as? KtQualifiedExpression)?.receiverExpression) {
|
||||||
is KtSimpleNameExpression -> receiverExpression
|
is KtSimpleNameExpression -> receiverExpression
|
||||||
|
|||||||
Vendored
+4
-4
@@ -2,7 +2,7 @@
|
|||||||
// ISSUE: KT-49110, KT-54055
|
// ISSUE: KT-49110, KT-54055
|
||||||
|
|
||||||
enum class SomeEnum(val x: Int) {
|
enum class SomeEnum(val x: Int) {
|
||||||
A(<!UNINITIALIZED_ENUM_COMPANION!>companionFun<!>().length),// UNINITIALIZED_ENUM_COMPANION
|
A(<!UNINITIALIZED_ENUM_COMPANION_WARNING!><!UNINITIALIZED_ENUM_COMPANION!>companionFun<!>()<!>.length),// UNINITIALIZED_ENUM_COMPANION
|
||||||
B(<!UNINITIALIZED_ENUM_COMPANION_WARNING, UNINITIALIZED_VARIABLE!>companionProp<!>.length), // UNINITIALIZED_VARIABLE
|
B(<!UNINITIALIZED_ENUM_COMPANION_WARNING, UNINITIALIZED_VARIABLE!>companionProp<!>.length), // UNINITIALIZED_VARIABLE
|
||||||
|
|
||||||
C(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>SomeEnum<!>.companionFun().length),
|
C(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>SomeEnum<!>.companionFun().length),
|
||||||
@@ -18,7 +18,7 @@ enum class SomeEnum(val x: Int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum class OtherEnum(val x: Int) {
|
enum class OtherEnum(val x: Int) {
|
||||||
G(<!UNINITIALIZED_ENUM_COMPANION!>extensionFun<!>().length), // UNINITIALIZED_ENUM_COMPANION
|
G(<!UNINITIALIZED_ENUM_COMPANION_WARNING!><!UNINITIALIZED_ENUM_COMPANION!>extensionFun<!>()<!>.length), // UNINITIALIZED_ENUM_COMPANION
|
||||||
H(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionProp<!>.length),
|
H(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionProp<!>.length),
|
||||||
|
|
||||||
I(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>OtherEnum<!>.extensionFun().length),
|
I(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>OtherEnum<!>.extensionFun().length),
|
||||||
@@ -39,13 +39,13 @@ val OtherEnum.Companion.extensionProp: String
|
|||||||
|
|
||||||
enum class EnumWithLambda(val lambda: () -> Unit) {
|
enum class EnumWithLambda(val lambda: () -> Unit) {
|
||||||
M({
|
M({
|
||||||
companionFun().length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionFun()<!>.length
|
||||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionProp<!>.length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionProp<!>.length
|
||||||
|
|
||||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionFun().length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionFun().length
|
||||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionProp.length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionProp.length
|
||||||
|
|
||||||
extensionFun().length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionFun()<!>.length
|
||||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionProp<!>.length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>extensionProp<!>.length
|
||||||
|
|
||||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.extensionFun().length
|
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.extensionFun().length
|
||||||
|
|||||||
Reference in New Issue
Block a user