[FIR] Implement warnings for java nullability type mismatch on override
#KT-56989
This commit is contained in:
committed by
Space Team
parent
a6fdeeb7df
commit
2df1e9dde6
+8
@@ -5025,6 +5025,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJvmErrors.WRONG_NULLABILITY_FOR_JAVA_OVERRIDE) { firDiagnostic ->
|
||||
WrongNullabilityForJavaOverrideImpl(
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.a),
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b),
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirJvmErrors.JAVA_TYPE_MISMATCH) { firDiagnostic ->
|
||||
JavaTypeMismatchImpl(
|
||||
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
|
||||
|
||||
+6
@@ -3495,6 +3495,12 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = JvmInlineWithoutValueClass::class
|
||||
}
|
||||
|
||||
interface WrongNullabilityForJavaOverride : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = WrongNullabilityForJavaOverride::class
|
||||
val override: KtCallableSymbol
|
||||
val base: KtCallableSymbol
|
||||
}
|
||||
|
||||
interface JavaTypeMismatch : KtFirDiagnostic<KtExpression> {
|
||||
override val diagnosticClass get() = JavaTypeMismatch::class
|
||||
val expectedType: KtType
|
||||
|
||||
+7
@@ -4217,6 +4217,13 @@ internal class JvmInlineWithoutValueClassImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.JvmInlineWithoutValueClass
|
||||
|
||||
internal class WrongNullabilityForJavaOverrideImpl(
|
||||
override val override: KtCallableSymbol,
|
||||
override val base: KtCallableSymbol,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.WrongNullabilityForJavaOverride
|
||||
|
||||
internal class JavaTypeMismatchImpl(
|
||||
override val expectedType: KtType,
|
||||
override val actualType: KtType,
|
||||
|
||||
Reference in New Issue
Block a user