[FIR] Migrate warning/error pairs to DiagnosticFactoryForDeprecation

This commit is contained in:
Dmitriy Novozhilov
2021-07-30 18:07:09 +03:00
parent adfeab1bd0
commit b584fed93d
21 changed files with 119 additions and 139 deletions
@@ -738,14 +738,26 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.ANNOTATION_ON_SUPERCLASS) { firDiagnostic ->
AnnotationOnSuperclassImpl(
add(FirErrors.ANNOTATION_ON_SUPERCLASS.errorFactory) { firDiagnostic ->
AnnotationOnSuperclassErrorImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION) { firDiagnostic ->
RestrictedRetentionForExpressionAnnotationImpl(
add(FirErrors.ANNOTATION_ON_SUPERCLASS.warningFactory) { firDiagnostic ->
AnnotationOnSuperclassWarningImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION.errorFactory) { firDiagnostic ->
RestrictedRetentionForExpressionAnnotationErrorImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.RESTRICTED_RETENTION_FOR_EXPRESSION_ANNOTATION.warningFactory) { firDiagnostic ->
RestrictedRetentionForExpressionAnnotationWarningImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
@@ -1463,14 +1475,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY) { firDiagnostic ->
TypeParameterAsReifiedArrayImpl(
add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.errorFactory) { firDiagnostic ->
TypeParameterAsReifiedArrayErrorImpl(
firSymbolBuilder.classifierBuilder.buildTypeParameterSymbol(firDiagnostic.a.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING) { firDiagnostic ->
add(FirErrors.TYPE_PARAMETER_AS_REIFIED_ARRAY.warningFactory) { firDiagnostic ->
TypeParameterAsReifiedArrayWarningImpl(
firSymbolBuilder.classifierBuilder.buildTypeParameterSymbol(firDiagnostic.a.fir),
firDiagnostic as FirPsiDiagnostic,
@@ -1792,15 +1804,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER) { firDiagnostic ->
InvisibleAbstractMemberFromSuperImpl(
add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER.errorFactory) { firDiagnostic ->
InvisibleAbstractMemberFromSuperErrorImpl(
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a.fir),
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING) { firDiagnostic ->
add(FirErrors.INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER.warningFactory) { firDiagnostic ->
InvisibleAbstractMemberFromSuperWarningImpl(
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a.fir),
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b.fir),
@@ -2513,15 +2525,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD) { firDiagnostic ->
ValReassignmentViaBackingFieldImpl(
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.errorFactory) { firDiagnostic ->
ValReassignmentViaBackingFieldErrorImpl(
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR) { firDiagnostic ->
ValReassignmentViaBackingFieldErrorImpl(
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.warningFactory) { firDiagnostic ->
ValReassignmentViaBackingFieldWarningImpl(
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir),
firDiagnostic as FirPsiDiagnostic,
token,
@@ -534,12 +534,20 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = DeprecatedSinceKotlinOutsideKotlinSubpackage::class
}
abstract class AnnotationOnSuperclass : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = AnnotationOnSuperclass::class
abstract class AnnotationOnSuperclassError : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = AnnotationOnSuperclassError::class
}
abstract class RestrictedRetentionForExpressionAnnotation : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotation::class
abstract class AnnotationOnSuperclassWarning : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = AnnotationOnSuperclassWarning::class
}
abstract class RestrictedRetentionForExpressionAnnotationError : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotationError::class
}
abstract class RestrictedRetentionForExpressionAnnotationWarning : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = RestrictedRetentionForExpressionAnnotationWarning::class
}
abstract class WrongAnnotationTarget : KtFirDiagnostic<KtAnnotationEntry>() {
@@ -1041,8 +1049,8 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val typeParameter: KtTypeParameterSymbol
}
abstract class TypeParameterAsReifiedArray : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = TypeParameterAsReifiedArray::class
abstract class TypeParameterAsReifiedArrayError : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = TypeParameterAsReifiedArrayError::class
abstract val typeParameter: KtTypeParameterSymbol
}
@@ -1278,8 +1286,8 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val missingDeclaration: KtCallableSymbol
}
abstract class InvisibleAbstractMemberFromSuper : KtFirDiagnostic<KtClassOrObject>() {
override val diagnosticClass get() = InvisibleAbstractMemberFromSuper::class
abstract class InvisibleAbstractMemberFromSuperError : KtFirDiagnostic<KtClassOrObject>() {
override val diagnosticClass get() = InvisibleAbstractMemberFromSuperError::class
abstract val classOrObject: KtClassLikeSymbol
abstract val invisibleDeclaration: KtCallableSymbol
}
@@ -1761,13 +1769,13 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val variable: KtVariableLikeSymbol
}
abstract class ValReassignmentViaBackingField : KtFirDiagnostic<KtExpression>() {
override val diagnosticClass get() = ValReassignmentViaBackingField::class
abstract class ValReassignmentViaBackingFieldError : KtFirDiagnostic<KtExpression>() {
override val diagnosticClass get() = ValReassignmentViaBackingFieldError::class
abstract val property: KtVariableSymbol
}
abstract class ValReassignmentViaBackingFieldError : KtFirDiagnostic<KtExpression>() {
override val diagnosticClass get() = ValReassignmentViaBackingFieldError::class
abstract class ValReassignmentViaBackingFieldWarning : KtFirDiagnostic<KtExpression>() {
override val diagnosticClass get() = ValReassignmentViaBackingFieldWarning::class
abstract val property: KtVariableSymbol
}
@@ -853,17 +853,31 @@ internal class DeprecatedSinceKotlinOutsideKotlinSubpackageImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class AnnotationOnSuperclassImpl(
internal class AnnotationOnSuperclassErrorImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.AnnotationOnSuperclass(), KtAbstractFirDiagnostic<KtAnnotationEntry> {
) : KtFirDiagnostic.AnnotationOnSuperclassError(), KtAbstractFirDiagnostic<KtAnnotationEntry> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class RestrictedRetentionForExpressionAnnotationImpl(
internal class AnnotationOnSuperclassWarningImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotation(), KtAbstractFirDiagnostic<PsiElement> {
) : KtFirDiagnostic.AnnotationOnSuperclassWarning(), KtAbstractFirDiagnostic<KtAnnotationEntry> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class RestrictedRetentionForExpressionAnnotationErrorImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotationError(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class RestrictedRetentionForExpressionAnnotationWarningImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.RestrictedRetentionForExpressionAnnotationWarning(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
@@ -1669,11 +1683,11 @@ internal class TypeParameterAsReifiedImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class TypeParameterAsReifiedArrayImpl(
internal class TypeParameterAsReifiedArrayErrorImpl(
override val typeParameter: KtTypeParameterSymbol,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.TypeParameterAsReifiedArray(), KtAbstractFirDiagnostic<PsiElement> {
) : KtFirDiagnostic.TypeParameterAsReifiedArrayError(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
@@ -2041,12 +2055,12 @@ internal class AbstractClassMemberNotImplementedImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InvisibleAbstractMemberFromSuperImpl(
internal class InvisibleAbstractMemberFromSuperErrorImpl(
override val classOrObject: KtClassLikeSymbol,
override val invisibleDeclaration: KtCallableSymbol,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.InvisibleAbstractMemberFromSuper(), KtAbstractFirDiagnostic<KtClassOrObject> {
) : KtFirDiagnostic.InvisibleAbstractMemberFromSuperError(), KtAbstractFirDiagnostic<KtClassOrObject> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
@@ -2836,14 +2850,6 @@ internal class ValReassignmentImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ValReassignmentViaBackingFieldImpl(
override val property: KtVariableSymbol,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.ValReassignmentViaBackingField(), KtAbstractFirDiagnostic<KtExpression> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ValReassignmentViaBackingFieldErrorImpl(
override val property: KtVariableSymbol,
firDiagnostic: FirPsiDiagnostic,
@@ -2852,6 +2858,14 @@ internal class ValReassignmentViaBackingFieldErrorImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class ValReassignmentViaBackingFieldWarningImpl(
override val property: KtVariableSymbol,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.ValReassignmentViaBackingFieldWarning(), KtAbstractFirDiagnostic<KtExpression> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class CapturedValInitializationImpl(
override val property: KtVariableSymbol,
firDiagnostic: FirPsiDiagnostic,