[FIR] Optimize FirDeprecationChecker
This commit is contained in:
+7
-13
@@ -24,30 +24,24 @@ import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.dep
|
|||||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
||||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
||||||
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
|
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
private val JAVA_ORIGINS = setOf(FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement)
|
private val JAVA_ORIGINS = setOf(FirDeclarationOrigin.Java, FirDeclarationOrigin.Enhancement)
|
||||||
|
|
||||||
fun FirBasedSymbol<*>.getDeprecation(callSite: FirElement?): DeprecationInfo? {
|
fun FirBasedSymbol<*>.getDeprecation(callSite: FirElement?): DeprecationInfo? {
|
||||||
val deprecationInfos = mutableListOf<DeprecationInfo>()
|
return when (this) {
|
||||||
when (this) {
|
|
||||||
is FirPropertySymbol ->
|
is FirPropertySymbol ->
|
||||||
when (callSite) {
|
when (callSite) {
|
||||||
is FirVariableAssignment ->
|
is FirVariableAssignment ->
|
||||||
deprecationInfos.addIfNotNull(
|
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY)
|
||||||
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY)
|
|
||||||
)
|
|
||||||
is FirPropertyAccessExpression ->
|
is FirPropertyAccessExpression ->
|
||||||
deprecationInfos.addIfNotNull(
|
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY)
|
||||||
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY)
|
else ->
|
||||||
)
|
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY)
|
||||||
else -> deprecationInfos.addIfNotNull(getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY))
|
|
||||||
}
|
}
|
||||||
else -> deprecationInfos.addIfNotNull(getDeprecationForCallSite())
|
else ->
|
||||||
|
getDeprecationForCallSite()
|
||||||
}
|
}
|
||||||
|
|
||||||
return deprecationInfos.firstOrNull()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirAnnotationContainer.getDeprecationInfos(currentVersion: ApiVersion): DeprecationsPerUseSite {
|
fun FirAnnotationContainer.getDeprecationInfos(currentVersion: ApiVersion): DeprecationsPerUseSite {
|
||||||
|
|||||||
Reference in New Issue
Block a user