[FIR] Implement PACKAGE_OR_CLASSIFIER_REDECLARATION
Fix REDECLARATION positioning
This commit is contained in:
+9
@@ -1929,6 +1929,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.PACKAGE_OR_CLASSIFIER_REDECLARATION) { firDiagnostic ->
|
||||
PackageOrClassifierRedeclarationImpl(
|
||||
firDiagnostic.a.map { firBasedSymbol ->
|
||||
firSymbolBuilder.buildSymbol(firBasedSymbol.fir)
|
||||
},
|
||||
firDiagnostic as FirPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.METHOD_OF_ANY_IMPLEMENTED_IN_INTERFACE) { firDiagnostic ->
|
||||
MethodOfAnyImplementedInInterfaceImpl(
|
||||
firDiagnostic as FirPsiDiagnostic,
|
||||
|
||||
+6
-1
@@ -1369,11 +1369,16 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
abstract val conflictingOverloads: List<KtSymbol>
|
||||
}
|
||||
|
||||
abstract class Redeclaration : KtFirDiagnostic<PsiElement>() {
|
||||
abstract class Redeclaration : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = Redeclaration::class
|
||||
abstract val conflictingDeclarations: List<KtSymbol>
|
||||
}
|
||||
|
||||
abstract class PackageOrClassifierRedeclaration : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = PackageOrClassifierRedeclaration::class
|
||||
abstract val conflictingDeclarations: List<KtSymbol>
|
||||
}
|
||||
|
||||
abstract class MethodOfAnyImplementedInInterface : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = MethodOfAnyImplementedInInterface::class
|
||||
}
|
||||
|
||||
+9
-1
@@ -2187,7 +2187,15 @@ internal class RedeclarationImpl(
|
||||
override val conflictingDeclarations: List<KtSymbol>,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.Redeclaration(), KtAbstractFirDiagnostic<PsiElement> {
|
||||
) : KtFirDiagnostic.Redeclaration(), KtAbstractFirDiagnostic<KtNamedDeclaration> {
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class PackageOrClassifierRedeclarationImpl(
|
||||
override val conflictingDeclarations: List<KtSymbol>,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.PackageOrClassifierRedeclaration(), KtAbstractFirDiagnostic<KtNamedDeclaration> {
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user