FIR: introduce RETURN_FOR_BUILT_IN_SUSPEND diagnostic

This commit is contained in:
Mikhail Glukhikh
2021-07-27 19:30:46 +03:00
committed by teamcityserver
parent 229dfd3f5f
commit 807f031dcc
11 changed files with 65 additions and 8 deletions
@@ -3180,6 +3180,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.RETURN_FOR_BUILT_IN_SUSPEND) { firDiagnostic ->
ReturnForBuiltInSuspendImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirJvmErrors.CONFLICTING_JVM_DECLARATIONS) { firDiagnostic ->
ConflictingJvmDeclarationsImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -2223,6 +2223,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = ModifierFormForNonBuiltInSuspend::class
}
abstract class ReturnForBuiltInSuspend : KtFirDiagnostic<KtReturnExpression>() {
override val diagnosticClass get() = ReturnForBuiltInSuspend::class
}
abstract class ConflictingJvmDeclarations : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = ConflictingJvmDeclarations::class
}
@@ -3589,6 +3589,13 @@ internal class ModifierFormForNonBuiltInSuspendImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ReturnForBuiltInSuspendImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.ReturnForBuiltInSuspend(), KtAbstractFirDiagnostic<KtReturnExpression> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ConflictingJvmDeclarationsImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,