Update FIR-IDE diagnostic components

This commit is contained in:
Mikhail Glukhikh
2021-02-19 15:41:41 +03:00
parent 7c080395f2
commit 3571074da4
3 changed files with 20 additions and 0 deletions
@@ -242,6 +242,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.SUPERTYPE_NOT_A_CLASS_OR_INTERFACE) { firDiagnostic ->
SupertypeNotAClassOrInterfaceImpl(
firDiagnostic.a,
firDiagnostic as FirPsiDiagnostic<*>,
token,
)
}
add(FirErrors.CONSTRUCTOR_IN_OBJECT) { firDiagnostic ->
ConstructorInObjectImpl(
firDiagnostic as FirPsiDiagnostic<*>,
@@ -178,6 +178,11 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = SealedSupertypeInLocalClass::class
}
abstract class SupertypeNotAClassOrInterface : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = SupertypeNotAClassOrInterface::class
abstract val reason: String
}
abstract class ConstructorInObject : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = ConstructorInObject::class
}
@@ -278,6 +278,14 @@ internal class SealedSupertypeInLocalClassImpl(
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
}
internal class SupertypeNotAClassOrInterfaceImpl(
override val reason: String,
firDiagnostic: FirPsiDiagnostic<*>,
override val token: ValidityToken,
) : KtFirDiagnostic.SupertypeNotAClassOrInterface(), KtAbstractFirDiagnostic<KtElement> {
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
}
internal class ConstructorInObjectImpl(
firDiagnostic: FirPsiDiagnostic<*>,
override val token: ValidityToken,