K2: implement BUILDER_INFERENCE_STUB_RECEIVER

#KT-59369 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-11-28 23:30:11 +01:00
committed by Space Team
parent 5e5e5b8b9f
commit 0ed6256bcc
21 changed files with 162 additions and 70 deletions
@@ -4968,6 +4968,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.BUILDER_INFERENCE_STUB_RECEIVER) { firDiagnostic ->
BuilderInferenceStubReceiverImpl(
firDiagnostic.a,
firDiagnostic.b,
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJvmErrors.OVERRIDE_CANNOT_BE_STATIC) { firDiagnostic ->
OverrideCannotBeStaticImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -3457,6 +3457,12 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
val presentableString: String
}
interface BuilderInferenceStubReceiver : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = BuilderInferenceStubReceiver::class
val typeParameterName: Name
val containingDeclarationName: Name
}
interface OverrideCannotBeStatic : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = OverrideCannotBeStatic::class
}
@@ -4169,6 +4169,13 @@ internal class IrWithUnstableAbiCompiledClassImpl(
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.IrWithUnstableAbiCompiledClass
internal class BuilderInferenceStubReceiverImpl(
override val typeParameterName: Name,
override val containingDeclarationName: Name,
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.BuilderInferenceStubReceiver
internal class OverrideCannotBeStaticImpl(
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,