[FIR] Add CANNOT_CHECK_FOR_ERASED

This commit is contained in:
Ivan Kochurkin
2021-09-15 20:44:47 +03:00
committed by TeamCityServer
parent e52a410599
commit 291bc74676
44 changed files with 514 additions and 134 deletions
@@ -3097,6 +3097,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.CANNOT_CHECK_FOR_ERASED) { firDiagnostic ->
CannotCheckForErasedImpl(
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.USELESS_CAST) { firDiagnostic ->
UselessCastImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -2168,6 +2168,11 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = UselessElvisRightIsNull::class
}
abstract class CannotCheckForErased : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = CannotCheckForErased::class
abstract val type: KtType
}
abstract class UselessCast : KtFirDiagnostic<KtBinaryExpressionWithTypeRHS>() {
override val diagnosticClass get() = UselessCast::class
}
@@ -2610,6 +2610,14 @@ internal class UselessElvisRightIsNullImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.UselessElvisRightIsNull(), KtAbstractFirDiagnostic<KtBinaryExpression>
internal class CannotCheckForErasedImpl(
override val type: KtType,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.CannotCheckForErased(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class UselessCastImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,