FIR checker: report violations related to API mode

This commit is contained in:
Tianyu Geng
2021-10-12 02:01:45 +03:00
committed by Mikhail Glukhikh
parent 52b247937e
commit c262f17d75
30 changed files with 298 additions and 222 deletions
@@ -1199,6 +1199,30 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.NO_EXPLICIT_VISIBILITY_IN_API_MODE) { firDiagnostic ->
NoExplicitVisibilityInApiModeImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING) { firDiagnostic ->
NoExplicitVisibilityInApiModeWarningImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.NO_EXPLICIT_RETURN_TYPE_IN_API_MODE) { firDiagnostic ->
NoExplicitReturnTypeInApiModeImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.NO_EXPLICIT_RETURN_TYPE_IN_API_MODE_WARNING) { firDiagnostic ->
NoExplicitReturnTypeInApiModeWarningImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.INLINE_CLASS_NOT_TOP_LEVEL) { firDiagnostic ->
InlineClassNotTopLevelImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -867,6 +867,22 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val message: String
}
abstract class NoExplicitVisibilityInApiMode : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = NoExplicitVisibilityInApiMode::class
}
abstract class NoExplicitVisibilityInApiModeWarning : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = NoExplicitVisibilityInApiModeWarning::class
}
abstract class NoExplicitReturnTypeInApiMode : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = NoExplicitReturnTypeInApiMode::class
}
abstract class NoExplicitReturnTypeInApiModeWarning : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = NoExplicitReturnTypeInApiModeWarning::class
}
abstract class InlineClassNotTopLevel : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = InlineClassNotTopLevel::class
}
@@ -1036,6 +1036,26 @@ internal class InapplicableOperatorModifierImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.InapplicableOperatorModifier(), KtAbstractFirDiagnostic<PsiElement>
internal class NoExplicitVisibilityInApiModeImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.NoExplicitVisibilityInApiMode(), KtAbstractFirDiagnostic<KtDeclaration>
internal class NoExplicitVisibilityInApiModeWarningImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.NoExplicitVisibilityInApiModeWarning(), KtAbstractFirDiagnostic<KtDeclaration>
internal class NoExplicitReturnTypeInApiModeImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.NoExplicitReturnTypeInApiMode(), KtAbstractFirDiagnostic<KtDeclaration>
internal class NoExplicitReturnTypeInApiModeWarningImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.NoExplicitReturnTypeInApiModeWarning(), KtAbstractFirDiagnostic<KtDeclaration>
internal class InlineClassNotTopLevelImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,