[FIR] Add STRICTFP_ON_CLASS diagnostic

This commit is contained in:
Andrey Zinovyev
2021-08-17 12:40:08 +03:00
committed by TeamCityServer
parent 565ea2c4f5
commit f90b534c4c
9 changed files with 54 additions and 17 deletions
@@ -3439,6 +3439,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.STRICTFP_ON_CLASS) { firDiagnostic ->
StrictfpOnClassImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.JAVA_TYPE_MISMATCH) { firDiagnostic ->
JavaTypeMismatchImpl(
firSymbolBuilder.typeBuilder.buildKtType(firDiagnostic.a),
@@ -2398,6 +2398,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = ConflictingJvmDeclarations::class
}
abstract class StrictfpOnClass : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = StrictfpOnClass::class
}
abstract class JavaTypeMismatch : KtFirDiagnostic<KtExpression>() {
override val diagnosticClass get() = JavaTypeMismatch::class
abstract val expectedType: KtType
@@ -3878,6 +3878,13 @@ internal class ConflictingJvmDeclarationsImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class StrictfpOnClassImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.StrictfpOnClass(), KtAbstractFirDiagnostic<KtAnnotationEntry> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class JavaTypeMismatchImpl(
override val expectedType: KtType,
override val actualType: KtType,