[FE] Prohibit missed MUST_BE_INITIALIZED when there is no primary constructor
^KT-58472 Fixed Review: https://jetbrains.team/p/kt/reviews/9967
This commit is contained in:
+12
@@ -2851,6 +2851,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.MUST_BE_INITIALIZED_WARNING) { firDiagnostic ->
|
||||
MustBeInitializedWarningImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.MUST_BE_INITIALIZED_OR_BE_FINAL) { firDiagnostic ->
|
||||
MustBeInitializedOrBeFinalImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
@@ -2869,6 +2875,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.MUST_BE_INITIALIZED_OR_BE_ABSTRACT_WARNING) { firDiagnostic ->
|
||||
MustBeInitializedOrBeAbstractWarningImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT) { firDiagnostic ->
|
||||
MustBeInitializedOrFinalOrAbstractImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+8
@@ -2019,6 +2019,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = MustBeInitialized::class
|
||||
}
|
||||
|
||||
abstract class MustBeInitializedWarning : KtFirDiagnostic<KtProperty>() {
|
||||
override val diagnosticClass get() = MustBeInitializedWarning::class
|
||||
}
|
||||
|
||||
abstract class MustBeInitializedOrBeFinal : KtFirDiagnostic<KtProperty>() {
|
||||
override val diagnosticClass get() = MustBeInitializedOrBeFinal::class
|
||||
}
|
||||
@@ -2031,6 +2035,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = MustBeInitializedOrBeAbstract::class
|
||||
}
|
||||
|
||||
abstract class MustBeInitializedOrBeAbstractWarning : KtFirDiagnostic<KtProperty>() {
|
||||
override val diagnosticClass get() = MustBeInitializedOrBeAbstractWarning::class
|
||||
}
|
||||
|
||||
abstract class MustBeInitializedOrFinalOrAbstract : KtFirDiagnostic<KtProperty>() {
|
||||
override val diagnosticClass get() = MustBeInitializedOrFinalOrAbstract::class
|
||||
}
|
||||
|
||||
+10
@@ -2425,6 +2425,11 @@ internal class MustBeInitializedImpl(
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.MustBeInitialized(), KtAbstractFirDiagnostic<KtProperty>
|
||||
|
||||
internal class MustBeInitializedWarningImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.MustBeInitializedWarning(), KtAbstractFirDiagnostic<KtProperty>
|
||||
|
||||
internal class MustBeInitializedOrBeFinalImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
@@ -2440,6 +2445,11 @@ internal class MustBeInitializedOrBeAbstractImpl(
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.MustBeInitializedOrBeAbstract(), KtAbstractFirDiagnostic<KtProperty>
|
||||
|
||||
internal class MustBeInitializedOrBeAbstractWarningImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.MustBeInitializedOrBeAbstractWarning(), KtAbstractFirDiagnostic<KtProperty>
|
||||
|
||||
internal class MustBeInitializedOrFinalOrAbstractImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
|
||||
Reference in New Issue
Block a user