[FIR] Implement RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER

Split underscore checkers
This commit is contained in:
Ivan Kochurkin
2021-07-23 15:49:20 +03:00
committed by Space
parent 10d9988824
commit 8bfaa39a5c
15 changed files with 297 additions and 194 deletions
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtIfExpression
import org.jetbrains.kotlin.psi.KtImportDirective
import org.jetbrains.kotlin.psi.KtModifierListOwner
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtObjectDeclaration
import org.jetbrains.kotlin.psi.KtParameter
@@ -2876,6 +2877,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER) { firDiagnostic ->
ResolvedToUnderscoreNamedCatchParameterImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.INVALID_CHARACTERS) { firDiagnostic ->
InvalidCharactersImpl(
firDiagnostic.a,
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtIfExpression
import org.jetbrains.kotlin.psi.KtImportDirective
import org.jetbrains.kotlin.psi.KtModifierListOwner
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtObjectDeclaration
import org.jetbrains.kotlin.psi.KtParameter
@@ -2011,6 +2012,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = UnderscoreUsageWithoutBackticks::class
}
abstract class ResolvedToUnderscoreNamedCatchParameter : KtFirDiagnostic<KtNameReferenceExpression>() {
override val diagnosticClass get() = ResolvedToUnderscoreNamedCatchParameter::class
}
abstract class InvalidCharacters : KtFirDiagnostic<KtNamedDeclaration>() {
override val diagnosticClass get() = InvalidCharacters::class
abstract val message: String
@@ -53,6 +53,7 @@ import org.jetbrains.kotlin.psi.KtFunction
import org.jetbrains.kotlin.psi.KtIfExpression
import org.jetbrains.kotlin.psi.KtImportDirective
import org.jetbrains.kotlin.psi.KtModifierListOwner
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtObjectDeclaration
import org.jetbrains.kotlin.psi.KtParameter
@@ -3239,6 +3240,13 @@ internal class UnderscoreUsageWithoutBackticksImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ResolvedToUnderscoreNamedCatchParameterImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.ResolvedToUnderscoreNamedCatchParameter(), KtAbstractFirDiagnostic<KtNameReferenceExpression> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InvalidCharactersImpl(
override val message: String,
firDiagnostic: FirPsiDiagnostic,