diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index ad9e822f967..9095dc36de1 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -485,7 +485,7 @@
) =
AutomaticVariableRenamer(element as PsiNamedElement, newName, usages)
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassifierProcessor.kt
similarity index 92%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassProcessor.kt
rename to idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassifierProcessor.kt
index 7d9a1a3d44b..ba039fbf423 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassProcessor.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinClassifierProcessor.kt
@@ -17,10 +17,8 @@
package org.jetbrains.kotlin.idea.refactoring.rename
import com.intellij.openapi.editor.Editor
-import com.intellij.psi.PsiClass
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiReference
-import com.intellij.psi.util.PsiUtilCore
import com.intellij.refactoring.JavaRefactoringSettings
import com.intellij.refactoring.listeners.RefactoringElementListener
import com.intellij.refactoring.rename.RenamePsiElementProcessor
@@ -29,22 +27,19 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
-import org.jetbrains.kotlin.descriptors.ClassDescriptor
+import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
-import org.jetbrains.kotlin.psi.KtClassOrObject
-import org.jetbrains.kotlin.psi.KtConstructor
-import org.jetbrains.kotlin.psi.KtNamedDeclaration
-import org.jetbrains.kotlin.psi.KtObjectDeclaration
+import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.utils.SmartList
import java.util.*
-class RenameKotlinClassProcessor : RenameKotlinPsiProcessor() {
+class RenameKotlinClassifierProcessor : RenameKotlinPsiProcessor() {
override fun canProcessElement(element: PsiElement): Boolean {
- return element is KtClassOrObject || element is KtLightClass || element is KtConstructor<*>
+ return element is KtClassOrObject || element is KtLightClass || element is KtConstructor<*> || element is KtTypeAlias
}
override fun isToSearchInComments(psiElement: PsiElement) = JavaRefactoringSettings.getInstance().RENAME_SEARCH_IN_COMMENTS_FOR_CLASS
@@ -102,7 +97,7 @@ class RenameKotlinClassProcessor : RenameKotlinPsiProcessor() {
) {
if (newName == null) return
val declaration = element.namedUnwrappedElement as? KtNamedDeclaration ?: return
- val descriptor = declaration.unsafeResolveToDescriptor() as ClassDescriptor
+ val descriptor = declaration.unsafeResolveToDescriptor() as ClassifierDescriptor
val collisions = SmartList()
checkRedeclarations(descriptor, newName, collisions)
@@ -122,8 +117,9 @@ class RenameKotlinClassProcessor : RenameKotlinPsiProcessor() {
is KtConstructor<*> ->
element.getContainingClassOrObject()
- else ->
- element as? KtClassOrObject
+ is KtClassOrObject, is KtTypeAlias -> element
+
+ else -> null
}
override fun renameElement(element: PsiElement, newName: String?, usages: Array, listener: RefactoringElementListener?) {
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/src/test/test.kt
new file mode 100644
index 00000000000..8ad57c097fd
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class Baz
+expect class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/src/test/test.kt
new file mode 100644
index 00000000000..095a6a611e7
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JS/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias Baz = ZZZ
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/src/test/test.kt
new file mode 100644
index 00000000000..65e2d16ad2e
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/after/JVM/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class Baz
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/src/test/test.kt
new file mode 100644
index 00000000000..3b14697a795
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class Foo
+expect class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/src/test/test.kt
new file mode 100644
index 00000000000..a69b1886e6a
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JS/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias /*rename*/Foo = ZZZ
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/src/test/test.kt
new file mode 100644
index 00000000000..c89a91e72c9
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/before/JVM/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class Foo
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/headerAndImplClassByImplTypeAlias.test b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/headerAndImplClassByImplTypeAlias.test
new file mode 100644
index 00000000000..46d0ba3b861
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/headerAndImplClassByImplTypeAlias.test
@@ -0,0 +1,6 @@
+{
+ "type": "MARKED_ELEMENT",
+ "file": "JS/src/test/test.kt",
+ "newName": "Baz",
+ "isMultiModule": "true"
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/src/test/test.kt
new file mode 100644
index 00000000000..8ad57c097fd
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class Baz
+expect class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/src/test/test.kt
new file mode 100644
index 00000000000..65e2d16ad2e
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JS/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class Baz
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/src/test/test.kt
new file mode 100644
index 00000000000..095a6a611e7
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/after/JVM/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias Baz = ZZZ
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/src/test/test.kt
new file mode 100644
index 00000000000..3b14697a795
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class Foo
+expect class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/src/test/test.kt
new file mode 100644
index 00000000000..bea2489bd44
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JS/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class /*rename*/Foo
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/src/test/test.kt
new file mode 100644
index 00000000000..00f48fcb463
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/before/JVM/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias Foo = ZZZ
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/headerAndImplTypeAliasByImplClass.test b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/headerAndImplTypeAliasByImplClass.test
new file mode 100644
index 00000000000..46d0ba3b861
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/headerAndImplTypeAliasByImplClass.test
@@ -0,0 +1,6 @@
+{
+ "type": "MARKED_ELEMENT",
+ "file": "JS/src/test/test.kt",
+ "newName": "Baz",
+ "isMultiModule": "true"
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/src/test/test.kt
new file mode 100644
index 00000000000..8ad57c097fd
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class Baz
+expect class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/src/test/test.kt
new file mode 100644
index 00000000000..095a6a611e7
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JS/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias Baz = ZZZ
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/src/test/test.kt
new file mode 100644
index 00000000000..65e2d16ad2e
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/after/JVM/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class Baz
+actual class Bar
+
+fun test() {
+ val baz: Baz = Baz()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/Common.iml
new file mode 100644
index 00000000000..0ecf9949f6c
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/Common.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/src/test/test.kt
new file mode 100644
index 00000000000..619dd8a8618
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/Common/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+expect class /*rename*/Foo
+expect class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/JS.iml
new file mode 100644
index 00000000000..3de270f43fa
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/JS.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/src/test/test.kt
new file mode 100644
index 00000000000..00f48fcb463
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JS/src/test/test.kt
@@ -0,0 +1,11 @@
+package test
+
+class ZZZ
+
+actual typealias Foo = ZZZ
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/JVM.iml
new file mode 100644
index 00000000000..76d2b885834
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/JVM.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Common
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/src/test/test.kt
new file mode 100644
index 00000000000..c89a91e72c9
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/before/JVM/src/test/test.kt
@@ -0,0 +1,9 @@
+package test
+
+actual class Foo
+actual class Bar
+
+fun test() {
+ val foo: Foo = Foo()
+ val bar: Bar = Bar()
+}
\ No newline at end of file
diff --git a/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/implClassAndTypeAliasByHeaderClass.test b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/implClassAndTypeAliasByHeaderClass.test
new file mode 100644
index 00000000000..a6df20e9631
--- /dev/null
+++ b/idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/implClassAndTypeAliasByHeaderClass.test
@@ -0,0 +1,6 @@
+{
+ "type": "MARKED_ELEMENT",
+ "file": "Common/src/test/test.kt",
+ "newName": "Baz",
+ "isMultiModule": "true"
+}
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java
index 726170ab315..3915bc687a4 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java
@@ -31,6 +31,18 @@ public class MultiModuleRenameTestGenerated extends AbstractMultiModuleRenameTes
doTest(fileName);
}
+ @TestMetadata("headerAndImplClassByImplTypeAlias/headerAndImplClassByImplTypeAlias.test")
+ public void testHeaderAndImplClassByImplTypeAlias_HeaderAndImplClassByImplTypeAlias() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headerAndImplClassByImplTypeAlias/headerAndImplClassByImplTypeAlias.test");
+ doTest(fileName);
+ }
+
+ @TestMetadata("headerAndImplTypeAliasByImplClass/headerAndImplTypeAliasByImplClass.test")
+ public void testHeaderAndImplTypeAliasByImplClass_HeaderAndImplTypeAliasByImplClass() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headerAndImplTypeAliasByImplClass/headerAndImplTypeAliasByImplClass.test");
+ doTest(fileName);
+ }
+
@TestMetadata("headersAndImplsByHeaderClass/headersAndImplsByHeaderClass.test")
public void testHeadersAndImplsByHeaderClass_HeadersAndImplsByHeaderClass() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClass/headersAndImplsByHeaderClass.test");
@@ -139,6 +151,12 @@ public class MultiModuleRenameTestGenerated extends AbstractMultiModuleRenameTes
doTest(fileName);
}
+ @TestMetadata("implClassAndTypeAliasByHeaderClass/implClassAndTypeAliasByHeaderClass.test")
+ public void testImplClassAndTypeAliasByHeaderClass_ImplClassAndTypeAliasByHeaderClass() throws Exception {
+ String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/implClassAndTypeAliasByHeaderClass/implClassAndTypeAliasByHeaderClass.test");
+ doTest(fileName);
+ }
+
@TestMetadata("suspendFunImplInImplModule/suspendFunImplInImplModule.test")
public void testSuspendFunImplInImplModule_SuspendFunImplInImplModule() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/suspendFunImplInImplModule/suspendFunImplInImplModule.test");