FIR: report ANNOTATION_CLASS_CONSTRUCTOR_CALL diagnostic
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
package Test.SubTest.AnotherTest
|
||||
|
||||
open class TestClass {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
package some
|
||||
|
||||
annotation class AnnComplete
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
package some
|
||||
|
||||
annotation class AnnComplete
|
||||
|
||||
+7
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.psi.KtAnnotation
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpressionWithTypeRHS
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
@@ -519,6 +520,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.ANNOTATION_CLASS_CONSTRUCTOR_CALL) { firDiagnostic ->
|
||||
AnnotationClassConstructorCallImpl(
|
||||
firDiagnostic as FirPsiDiagnostic<*>,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.NOT_AN_ANNOTATION_CLASS) { firDiagnostic ->
|
||||
NotAnAnnotationClassImpl(
|
||||
firDiagnostic.a,
|
||||
|
||||
+5
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.psi.KtAnnotation
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpressionWithTypeRHS
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
@@ -374,6 +375,10 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = NonConstValUsedInConstantExpression::class
|
||||
}
|
||||
|
||||
abstract class AnnotationClassConstructorCall : KtFirDiagnostic<KtCallExpression>() {
|
||||
override val diagnosticClass get() = AnnotationClassConstructorCall::class
|
||||
}
|
||||
|
||||
abstract class NotAnAnnotationClass : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = NotAnAnnotationClass::class
|
||||
abstract val annotationName: String
|
||||
|
||||
+8
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.psi.KtAnnotation
|
||||
import org.jetbrains.kotlin.psi.KtArrayAccessExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpression
|
||||
import org.jetbrains.kotlin.psi.KtBinaryExpressionWithTypeRHS
|
||||
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
@@ -603,6 +604,13 @@ internal class NonConstValUsedInConstantExpressionImpl(
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class AnnotationClassConstructorCallImpl(
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.AnnotationClassConstructorCall(), KtAbstractFirDiagnostic<KtCallExpression> {
|
||||
override val firDiagnostic: FirPsiDiagnostic<*> by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class NotAnAnnotationClassImpl(
|
||||
override val annotationName: String,
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
|
||||
Reference in New Issue
Block a user