Deprecate ExtensionFunctionType on a non-function types

Related to KT-43527
This commit is contained in:
Mikhail Glukhikh
2022-01-12 17:13:37 +03:00
parent d0fa3eb1d3
commit 1274e2b90a
17 changed files with 61 additions and 10 deletions
@@ -951,6 +951,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.WRONG_EXTENSION_FUNCTION_TYPE_WARNING) { firDiagnostic ->
WrongExtensionFunctionTypeWarningImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.OPT_IN_USAGE) { firDiagnostic ->
OptInUsageImpl(
firDiagnostic.a,
@@ -684,6 +684,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = WrongExtensionFunctionType::class
}
abstract class WrongExtensionFunctionTypeWarning : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = WrongExtensionFunctionTypeWarning::class
}
abstract class OptInUsage : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = OptInUsage::class
abstract val optInMarkerFqName: FqName
@@ -821,6 +821,11 @@ internal class WrongExtensionFunctionTypeImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.WrongExtensionFunctionType(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class WrongExtensionFunctionTypeWarningImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.WrongExtensionFunctionTypeWarning(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class OptInUsageImpl(
override val optInMarkerFqName: FqName,
override val message: String,