KT-60940 [Analysis API] Small refactoring of KtFirReferenceShortener
Instead of unwrapping `partiallyResolvedTypeRef` in `processTypeRef`, just visit it with the visitor
This commit is contained in:
+4
-6
@@ -380,6 +380,8 @@ private class ElementsToShortenCollector(
|
|||||||
|
|
||||||
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
|
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
|
||||||
visitResolvedTypeRef(errorTypeRef)
|
visitResolvedTypeRef(errorTypeRef)
|
||||||
|
|
||||||
|
errorTypeRef.partiallyResolvedTypeRef?.accept(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
||||||
@@ -414,11 +416,7 @@ private class ElementsToShortenCollector(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun processTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
private fun processTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
|
||||||
val nonErrorResolvedTypeRef = if (resolvedTypeRef is FirErrorTypeRef) {
|
val typeElement = when (val realPsi = resolvedTypeRef.realPsi) {
|
||||||
resolvedTypeRef.partiallyResolvedTypeRef as? FirResolvedTypeRef ?: resolvedTypeRef
|
|
||||||
} else resolvedTypeRef
|
|
||||||
|
|
||||||
val typeElement = when (val realPsi = nonErrorResolvedTypeRef.realPsi) {
|
|
||||||
is KtTypeReference -> realPsi.typeElement
|
is KtTypeReference -> realPsi.typeElement
|
||||||
is KtNameReferenceExpression -> realPsi.parent as? KtTypeElement
|
is KtNameReferenceExpression -> realPsi.parent as? KtTypeElement
|
||||||
else -> null
|
else -> null
|
||||||
@@ -427,7 +425,7 @@ private class ElementsToShortenCollector(
|
|||||||
if (typeElement.referenceExpression?.textRange?.intersects(selection) != true) return
|
if (typeElement.referenceExpression?.textRange?.intersects(selection) != true) return
|
||||||
if (typeElement.qualifier == null) return
|
if (typeElement.qualifier == null) return
|
||||||
|
|
||||||
val classifierId = nonErrorResolvedTypeRef.type.lowerBoundIfFlexible().candidateClassId ?: return
|
val classifierId = resolvedTypeRef.type.lowerBoundIfFlexible().candidateClassId ?: return
|
||||||
|
|
||||||
findTypeToShorten(classifierId, typeElement)?.let(::addElementToShorten)
|
findTypeToShorten(classifierId, typeElement)?.let(::addElementToShorten)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user