[FIR JS] Support WRONG_MULTIPLE_INHERITANCE

This commit is contained in:
Nikolay Lunyak
2023-01-03 14:30:40 +02:00
committed by Space Team
parent 0426f35684
commit eed2fada1f
13 changed files with 124 additions and 7 deletions
@@ -598,6 +598,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJsErrors.WRONG_MULTIPLE_INHERITANCE) { firDiagnostic ->
WrongMultipleInheritanceImpl(
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.a),
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.CONSTRUCTOR_IN_OBJECT) { firDiagnostic ->
ConstructorInObjectImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -447,6 +447,11 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val candidates: List<KtType>
}
abstract class WrongMultipleInheritance : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = WrongMultipleInheritance::class
abstract val symbol: KtCallableSymbol
}
abstract class ConstructorInObject : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = ConstructorInObject::class
}
@@ -527,6 +527,12 @@ internal class AmbiguousSuperImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.AmbiguousSuper(), KtAbstractFirDiagnostic<KtSuperExpression>
internal class WrongMultipleInheritanceImpl(
override val symbol: KtCallableSymbol,
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.WrongMultipleInheritance(), KtAbstractFirDiagnostic<KtElement>
internal class ConstructorInObjectImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,