FE: Make synchronized suspend functions and lambdas error in 1.8

#KT-27333 Fixed
This commit is contained in:
Ilmir Usmanov
2022-04-03 02:29:24 +02:00
committed by teamcity
parent f473998e8b
commit 6e30ce2763
19 changed files with 152 additions and 75 deletions
@@ -4018,6 +4018,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.SYNCHRONIZED_ON_SUSPEND.errorFactory) { firDiagnostic ->
SynchronizedOnSuspendErrorImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJvmErrors.SYNCHRONIZED_ON_SUSPEND.warningFactory) { firDiagnostic ->
SynchronizedOnSuspendWarningImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJvmErrors.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS) { firDiagnostic ->
OverloadsWithoutDefaultArgumentsImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -2797,6 +2797,14 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = SynchronizedOnInline::class
}
abstract class SynchronizedOnSuspendError : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = SynchronizedOnSuspendError::class
}
abstract class SynchronizedOnSuspendWarning : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = SynchronizedOnSuspendWarning::class
}
abstract class OverloadsWithoutDefaultArguments : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = OverloadsWithoutDefaultArguments::class
}
@@ -3378,6 +3378,16 @@ internal class SynchronizedOnInlineImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.SynchronizedOnInline(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class SynchronizedOnSuspendErrorImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.SynchronizedOnSuspendError(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class SynchronizedOnSuspendWarningImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.SynchronizedOnSuspendWarning(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class OverloadsWithoutDefaultArgumentsImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,