[FIR] Add TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCED diagnostics

Report TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCED instead of
WRONG_NUMBER_OF_TYPE_ARGUMENTS where it's appropriate

^KT-59393 Fixed

Simplify FirTypeResolverImpl
This commit is contained in:
Ivan Kochurkin
2023-09-21 13:13:12 +02:00
committed by Space Team
parent 8d27af5b0d
commit 319fb967ec
18 changed files with 64 additions and 81 deletions
@@ -2123,6 +2123,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCED) { firDiagnostic ->
TypeArgumentsForOuterClassWhenNestedReferencedImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.WRONG_NUMBER_OF_TYPE_ARGUMENTS) { firDiagnostic ->
WrongNumberOfTypeArgumentsImpl(
firDiagnostic.a,
@@ -1513,6 +1513,10 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = TypeArgumentsNotAllowed::class
}
interface TypeArgumentsForOuterClassWhenNestedReferenced : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = TypeArgumentsForOuterClassWhenNestedReferenced::class
}
interface WrongNumberOfTypeArguments : KtFirDiagnostic<PsiElement> {
override val diagnosticClass get() = WrongNumberOfTypeArguments::class
val expectedCount: Int
@@ -1816,6 +1816,11 @@ internal class TypeArgumentsNotAllowedImpl(
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.TypeArgumentsNotAllowed
internal class TypeArgumentsForOuterClassWhenNestedReferencedImpl(
firDiagnostic: KtPsiDiagnostic,
token: KtLifetimeToken,
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.TypeArgumentsForOuterClassWhenNestedReferenced
internal class WrongNumberOfTypeArgumentsImpl(
override val expectedCount: Int,
override val classifier: KtClassLikeSymbol,