diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/ShortenReferences.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/ShortenReferences.kt index be54379db4a..21a149963c3 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/ShortenReferences.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/codeInsight/ShortenReferences.kt @@ -151,15 +151,15 @@ public object ShortenReferences { private abstract class ShorteningVisitor( val file: JetFile, val elementFilter: (PsiElement) -> FilterResult, - val resolveMap: Map, - val importInserter: ImportInserter) : JetVisitorVoid() { - protected val resolutionFacade: ResolutionFacade - get() = file.getResolutionFacade() + val preResolveMap: Map, + val importInserter: ImportInserter + ) : JetVisitorVoid() { + protected val resolutionFacade: ResolutionFacade = file.getResolutionFacade() protected val elementsToShorten: MutableSet = LinkedHashSet() protected fun bindingContext(element: JetElement): BindingContext - = resolveMap[element] ?: resolutionFacade.analyze(element) + = preResolveMap[element] ?: resolutionFacade.analyze(element) protected abstract fun getShortenedElement(element: T): JetElement? @@ -179,18 +179,16 @@ public object ShortenReferences { private class ShortenTypesVisitor( file: JetFile, elementFilter: (PsiElement) -> FilterResult, - resolveMap: Map, + preResolveMap: Map, importInserter: ImportInserter - ) : ShorteningVisitor(file, elementFilter, resolveMap, importInserter) { + ) : ShorteningVisitor(file, elementFilter, preResolveMap, importInserter) { private fun canShortenType(userType: JetUserType): Boolean { if (userType.getQualifier() == null) return false - val referenceExpression = userType.getReferenceExpression() - if (referenceExpression == null) return false + val referenceExpression = userType.getReferenceExpression() ?: return false val target = bindingContext(referenceExpression)[BindingContext.REFERENCE_TARGET, referenceExpression]?.let { desc -> if (desc is ConstructorDescriptor) desc.getContainingDeclaration() else desc - } - if (target == null) return false + } ?: return false val typeReference = userType.getStrictParentOfType()!! val scope = resolutionFacade.analyze(typeReference)[BindingContext.TYPE_RESOLUTION_SCOPE, typeReference]!! @@ -237,9 +235,9 @@ public object ShortenReferences { private class ShortenQualifiedExpressionsVisitor( file: JetFile, elementFilter: (PsiElement) -> FilterResult, - resolveMap: Map, + preResolveMap: Map, importInserter: ImportInserter - ) : ShorteningVisitor(file, elementFilter, resolveMap, importInserter) { + ) : ShorteningVisitor(file, elementFilter, preResolveMap, importInserter) { private fun canShorten(qualifiedExpression: JetDotQualifiedExpression): Boolean { val context = bindingContext(qualifiedExpression)