diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 6d8a09a46ad..717042dbfd1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -132,6 +132,7 @@ fun KtElement.lazilyProcessInternalReferencesToUpdateOnPackageNameChange( fun doCreateUsageInfo(refExpr: KtSimpleNameExpression): UsageInfo? { if (isAncestor(declaration, false)) { if (descriptor.importableFqName == null) return null + if (descriptor is ClassDescriptor && descriptor.isInner && refExpr.parent is KtCallExpression) return null if (isUnqualifiedExtensionReference(refExpr.mainReference, declaration)) return null if (packageName == null || !newPackageName.isSafe) return null return fqName.asString().let { diff --git a/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/dependency.kt b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/dependency.kt new file mode 100644 index 00000000000..9ad52353e65 --- /dev/null +++ b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/dependency.kt @@ -0,0 +1,7 @@ +package baz + +import foo.Class1 + +class Class2 : Class1() { + init { InnerClass() } +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/test.kt b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/test.kt new file mode 100644 index 00000000000..872ec312cc8 --- /dev/null +++ b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/after/foo/test.kt @@ -0,0 +1,6 @@ +package foo + +open class Class1() { + init { InnerClass() } + open inner class InnerClass() { } +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/dependency.kt b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/dependency.kt new file mode 100644 index 00000000000..c123ee1542b --- /dev/null +++ b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/dependency.kt @@ -0,0 +1,7 @@ +package baz + +import bar.Class1 + +class Class2 : Class1() { + init { InnerClass() } +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/test.kt b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/test.kt new file mode 100644 index 00000000000..2289fd06485 --- /dev/null +++ b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/before/foo/test.kt @@ -0,0 +1,6 @@ +package bar + +open class Class1() { + init { InnerClass() } + open inner class InnerClass() { } +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/innerClass.test b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/innerClass.test new file mode 100644 index 00000000000..1d0b01a4144 --- /dev/null +++ b/idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/innerClass.test @@ -0,0 +1,5 @@ +{ + "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.changePackage.ChangePackageToMatchDirectoryIntention", + "isApplicable": "true", + "mainFile": "foo/test.kt" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java index 2796b16d3fa..2543f25fb1f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java @@ -107,6 +107,12 @@ public class MultiFileIntentionTestGenerated extends AbstractMultiFileIntentionT doTest(fileName); } + @TestMetadata("reconcilePackageWithDirectory/innerClass/innerClass.test") + public void testReconcilePackageWithDirectory_innerClass_InnerClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/reconcilePackageWithDirectory/innerClass/innerClass.test"); + doTest(fileName); + } + @TestMetadata("reconcilePackageWithDirectory/packageMatchesDirectory/packageMatchesDirectory.test") public void testReconcilePackageWithDirectory_packageMatchesDirectory_PackageMatchesDirectory() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/reconcilePackageWithDirectory/packageMatchesDirectory/packageMatchesDirectory.test");