Move: Add import for top-level declarations moved to the default package
#KT-22661 Fixed
This commit is contained in:
+9
-2
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.intellij.util.IncorrectOperationException
|
||||
import com.intellij.util.SmartList
|
||||
import org.jetbrains.kotlin.asJava.unwrapped
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
||||
@@ -201,6 +202,12 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
|
||||
}
|
||||
}
|
||||
|
||||
val targetUnwrapped = targetElement?.unwrapped
|
||||
|
||||
if (targetUnwrapped != null && targetUnwrapped.isTopLevelKtOrJavaMember() && fqName.isOneSegmentFQN()) {
|
||||
addDelayedImportRequest(targetUnwrapped, containingKtFile)
|
||||
}
|
||||
|
||||
var parentDelimiter = "."
|
||||
val fqNameBase = when {
|
||||
parent is KtCallElement -> {
|
||||
@@ -215,8 +222,8 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
|
||||
.callableReference
|
||||
.replace(psiFactory.createSimpleName(shortName))
|
||||
.parent as KtCallableReferenceExpression
|
||||
if (targetElement != null && targetElement.isTopLevelKtOrJavaMember()) {
|
||||
addDelayedImportRequest(targetElement, parent.containingKtFile)
|
||||
if (targetUnwrapped != null && targetUnwrapped.isTopLevelKtOrJavaMember()) {
|
||||
addDelayedImportRequest(targetUnwrapped, parent.containingKtFile)
|
||||
return parent.replaced(newCallableRef).callableReference as KtNameReferenceExpression
|
||||
}
|
||||
newCallableRef.text
|
||||
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package a
|
||||
|
||||
import Y
|
||||
|
||||
class X: Y() {
|
||||
fun main() {
|
||||
Y().foo()
|
||||
|
||||
+3
-1
@@ -1,5 +1,7 @@
|
||||
package a
|
||||
|
||||
class Y {
|
||||
import X
|
||||
|
||||
class Y(x: X) {
|
||||
|
||||
}
|
||||
+1
-1
@@ -4,6 +4,6 @@ class <caret>X {
|
||||
|
||||
}
|
||||
|
||||
class Y {
|
||||
class Y(x: X) {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user