[FIR] Add TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM diagnostics, ^KT-52327 Fixed
This commit is contained in:
+6
@@ -3125,6 +3125,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM) { firDiagnostic ->
|
||||
TypecheckerHasRunIntoRecursiveProblemImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.UNSAFE_CALL) { firDiagnostic ->
|
||||
UnsafeCallImpl(
|
||||
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
|
||||
|
||||
+4
@@ -2184,6 +2184,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = SenselessNullInWhen::class
|
||||
}
|
||||
|
||||
abstract class TypecheckerHasRunIntoRecursiveProblem : KtFirDiagnostic<KtExpression>() {
|
||||
override val diagnosticClass get() = TypecheckerHasRunIntoRecursiveProblem::class
|
||||
}
|
||||
|
||||
abstract class UnsafeCall : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = UnsafeCall::class
|
||||
abstract val receiverType: KtType
|
||||
|
||||
+5
@@ -2629,6 +2629,11 @@ internal class SenselessNullInWhenImpl(
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.SenselessNullInWhen(), KtAbstractFirDiagnostic<KtElement>
|
||||
|
||||
internal class TypecheckerHasRunIntoRecursiveProblemImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.TypecheckerHasRunIntoRecursiveProblem(), KtAbstractFirDiagnostic<KtExpression>
|
||||
|
||||
internal class UnsafeCallImpl(
|
||||
override val receiverType: KtType,
|
||||
override val receiverExpression: KtExpression?,
|
||||
|
||||
Reference in New Issue
Block a user