Add an explicit diagnostic for when expect/actual modifiers are used in

an unsupported compilation

^KT-31281
This commit is contained in:
Timofey Solonin
2023-07-10 11:35:05 +02:00
committed by Space Team
parent cab0487f98
commit e12e78d96b
11 changed files with 39 additions and 13 deletions
@@ -3451,6 +3451,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.NOT_A_MULTIPLATFORM_COMPILATION) { firDiagnostic ->
NotAMultiplatformCompilationImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION) { firDiagnostic ->
InitializerRequiredForDestructuringDeclarationImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -2411,6 +2411,10 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = ActualMissing::class
}
interface NotAMultiplatformCompilation : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = NotAMultiplatformCompilation::class
}
interface InitializerRequiredForDestructuringDeclaration : KtFirDiagnostic<KtDestructuringDeclaration> {
override val diagnosticClass get() = InitializerRequiredForDestructuringDeclaration::class
}
@@ -2907,6 +2907,11 @@ internal class ActualMissingImpl(
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<KtNamedDeclaration>(firDiagnostic, token), KtFirDiagnostic.ActualMissing
internal class NotAMultiplatformCompilationImpl(
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.NotAMultiplatformCompilation
internal class InitializerRequiredForDestructuringDeclarationImpl(
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,