[FIR] Implement VERSION_REQUIREMENT_DEPRECATION diagnostics
This commit is contained in:
committed by
Space Team
parent
65ea9697ab
commit
09f895efe6
+2
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
|
||||
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -370,6 +371,7 @@ internal object FirToKtConversionCreator {
|
||||
CallableId::class,
|
||||
ClassKind::class,
|
||||
FunctionTypeKind::class,
|
||||
VersionRequirement.Version::class,
|
||||
)
|
||||
|
||||
private val KType.kClass: KClass<*>
|
||||
|
||||
+20
@@ -327,6 +327,26 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VERSION_REQUIREMENT_DEPRECATION_ERROR) { firDiagnostic ->
|
||||
VersionRequirementDeprecationErrorImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
firDiagnostic.b,
|
||||
firDiagnostic.c,
|
||||
firDiagnostic.d,
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VERSION_REQUIREMENT_DEPRECATION) { firDiagnostic ->
|
||||
VersionRequirementDeprecationImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
firDiagnostic.b,
|
||||
firDiagnostic.c,
|
||||
firDiagnostic.d,
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.TYPEALIAS_EXPANSION_DEPRECATION_ERROR) { firDiagnostic ->
|
||||
TypealiasExpansionDeprecationErrorImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
|
||||
+17
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
|
||||
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement.Version
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -271,6 +272,22 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
val message: String
|
||||
}
|
||||
|
||||
interface VersionRequirementDeprecationError : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = VersionRequirementDeprecationError::class
|
||||
val reference: KtSymbol
|
||||
val version: Version
|
||||
val currentVersion: String
|
||||
val message: String
|
||||
}
|
||||
|
||||
interface VersionRequirementDeprecation : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = VersionRequirementDeprecation::class
|
||||
val reference: KtSymbol
|
||||
val version: Version
|
||||
val currentVersion: String
|
||||
val message: String
|
||||
}
|
||||
|
||||
interface TypealiasExpansionDeprecationError : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = TypealiasExpansionDeprecationError::class
|
||||
val alias: KtSymbol
|
||||
|
||||
+19
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
|
||||
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement.Version
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -311,6 +312,24 @@ internal class DeprecationImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.Deprecation
|
||||
|
||||
internal class VersionRequirementDeprecationErrorImpl(
|
||||
override val reference: KtSymbol,
|
||||
override val version: Version,
|
||||
override val currentVersion: String,
|
||||
override val message: String,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.VersionRequirementDeprecationError
|
||||
|
||||
internal class VersionRequirementDeprecationImpl(
|
||||
override val reference: KtSymbol,
|
||||
override val version: Version,
|
||||
override val currentVersion: String,
|
||||
override val message: String,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<PsiElement>(firDiagnostic, token), KtFirDiagnostic.VersionRequirementDeprecation
|
||||
|
||||
internal class TypealiasExpansionDeprecationErrorImpl(
|
||||
override val alias: KtSymbol,
|
||||
override val reference: KtSymbol,
|
||||
|
||||
Reference in New Issue
Block a user