[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 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) {
|
||||
val reportOn = when (val receiverExpression = (expression as? KtQualifiedExpression)?.receiverExpression) {
|
||||
is KtSimpleNameExpression -> receiverExpression
|
||||
|
||||
Vendored
+4
-4
@@ -2,7 +2,7 @@
|
||||
// ISSUE: KT-49110, KT-54055
|
||||
|
||||
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
|
||||
|
||||
C(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>SomeEnum<!>.companionFun().length),
|
||||
@@ -18,7 +18,7 @@ enum class SomeEnum(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),
|
||||
|
||||
I(<!UNINITIALIZED_ENUM_COMPANION_WARNING!>OtherEnum<!>.extensionFun().length),
|
||||
@@ -39,13 +39,13 @@ val OtherEnum.Companion.extensionProp: String
|
||||
|
||||
enum class EnumWithLambda(val lambda: () -> Unit) {
|
||||
M({
|
||||
companionFun().length
|
||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionFun()<!>.length
|
||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>companionProp<!>.length
|
||||
|
||||
<!UNINITIALIZED_ENUM_COMPANION_WARNING!>EnumWithLambda<!>.companionFun().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!>EnumWithLambda<!>.extensionFun().length
|
||||
|
||||
Reference in New Issue
Block a user