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.psi.util.PsiTreeUtil
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import com.intellij.util.SmartList
|
import com.intellij.util.SmartList
|
||||||
|
import org.jetbrains.kotlin.asJava.unwrapped
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
|
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 = "."
|
var parentDelimiter = "."
|
||||||
val fqNameBase = when {
|
val fqNameBase = when {
|
||||||
parent is KtCallElement -> {
|
parent is KtCallElement -> {
|
||||||
@@ -215,8 +222,8 @@ class KtSimpleNameReference(expression: KtSimpleNameExpression) : KtSimpleRefere
|
|||||||
.callableReference
|
.callableReference
|
||||||
.replace(psiFactory.createSimpleName(shortName))
|
.replace(psiFactory.createSimpleName(shortName))
|
||||||
.parent as KtCallableReferenceExpression
|
.parent as KtCallableReferenceExpression
|
||||||
if (targetElement != null && targetElement.isTopLevelKtOrJavaMember()) {
|
if (targetUnwrapped != null && targetUnwrapped.isTopLevelKtOrJavaMember()) {
|
||||||
addDelayedImportRequest(targetElement, parent.containingKtFile)
|
addDelayedImportRequest(targetUnwrapped, parent.containingKtFile)
|
||||||
return parent.replaced(newCallableRef).callableReference as KtNameReferenceExpression
|
return parent.replaced(newCallableRef).callableReference as KtNameReferenceExpression
|
||||||
}
|
}
|
||||||
newCallableRef.text
|
newCallableRef.text
|
||||||
|
|||||||
+2
@@ -1,5 +1,7 @@
|
|||||||
package a
|
package a
|
||||||
|
|
||||||
|
import Y
|
||||||
|
|
||||||
class X: Y() {
|
class X: Y() {
|
||||||
fun main() {
|
fun main() {
|
||||||
Y().foo()
|
Y().foo()
|
||||||
|
|||||||
+3
-1
@@ -1,5 +1,7 @@
|
|||||||
package a
|
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