Move: Fix processing of references with qualifier receivers
#KT-8098 Fixed
This commit is contained in:
@@ -102,13 +102,9 @@ public fun JetElement.getInternalReferencesToUpdateOnPackageNameChange(packageNa
|
|||||||
if (receiver != null) {
|
if (receiver != null) {
|
||||||
val receiverRef = receiver.getQualifiedElementSelector() as? JetSimpleNameExpression ?: return null
|
val receiverRef = receiver.getQualifiedElementSelector() as? JetSimpleNameExpression ?: return null
|
||||||
if (bindingContext[BindingContext.QUALIFIER, receiverRef] == null) return null
|
if (bindingContext[BindingContext.QUALIFIER, receiverRef] == null) return null
|
||||||
if (descriptor is CallableMemberDescriptor && descriptor.getKind() == Kind.SYNTHESIZED) {
|
return processReference(receiverRef, bindingContext)
|
||||||
return processReference(receiverRef, bindingContext)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (containingDescriptor !is PackageFragmentDescriptor) return null
|
|
||||||
}
|
}
|
||||||
|
if (containingDescriptor !is PackageFragmentDescriptor) return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val fqName = DescriptorUtils.getFqName(descriptor)
|
val fqName = DescriptorUtils.getFqName(descriptor)
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
package source
|
||||||
|
|
||||||
|
interface MyIntf {
|
||||||
|
val foo: Int
|
||||||
|
}
|
||||||
|
|
||||||
|
open class MyClass: MyIntf {
|
||||||
|
val foo: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
object MyObj: MyIntf by MyClass()
|
||||||
|
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package target
|
||||||
|
|
||||||
|
import source.MyObj
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
MyObj.foo
|
||||||
|
}
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
package source
|
||||||
|
|
||||||
|
interface MyIntf {
|
||||||
|
val foo: Int
|
||||||
|
}
|
||||||
|
|
||||||
|
open class MyClass: MyIntf {
|
||||||
|
val foo: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
object MyObj: MyIntf by MyClass()
|
||||||
|
|
||||||
|
fun <caret>test() {
|
||||||
|
MyObj.foo
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"mainFile": "source/Foo.kt",
|
||||||
|
"type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS",
|
||||||
|
"targetPackage": "target"
|
||||||
|
}
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
package source
|
||||||
|
|
||||||
|
open class MyClass {
|
||||||
|
val foo: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
object MyObj: MyClass()
|
||||||
|
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package target
|
||||||
|
|
||||||
|
import source.MyObj
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
MyObj.foo
|
||||||
|
}
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
package source
|
||||||
|
|
||||||
|
open class MyClass {
|
||||||
|
val foo: Int = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
object MyObj: MyClass()
|
||||||
|
|
||||||
|
fun <caret>test() {
|
||||||
|
MyObj.foo
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"mainFile": "source/Foo.kt",
|
||||||
|
"type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS",
|
||||||
|
"targetPackage": "target"
|
||||||
|
}
|
||||||
@@ -269,6 +269,18 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/delegateInObject/delegateInObject.test")
|
||||||
|
public void testKotlin_moveTopLevelDeclarations_misc_delegateInObject_DelegateInObject() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/delegateInObject/delegateInObject.test");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/fakeOverrideInObject.test")
|
||||||
|
public void testKotlin_moveTopLevelDeclarations_misc_fakeOverrideInObject_FakeOverrideInObject() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/fakeOverrideInObject/fakeOverrideInObject.test");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/internalReferences/internalReferences.test")
|
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/internalReferences/internalReferences.test")
|
||||||
public void testKotlin_moveTopLevelDeclarations_misc_internalReferences_InternalReferences() throws Exception {
|
public void testKotlin_moveTopLevelDeclarations_misc_internalReferences_InternalReferences() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/internalReferences/internalReferences.test");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/internalReferences/internalReferences.test");
|
||||||
|
|||||||
Reference in New Issue
Block a user