diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt index 09049239666..2f32be87ce8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt @@ -175,12 +175,20 @@ object HeaderImplDeclarationChecker : DeclarationChecker { findHeaderForImpl(this, commonModule)?.get(Compatible).orEmpty() private fun CallableMemberDescriptor.findNamesakesFromModule(module: ModuleDescriptor): Collection { - val packageFqName = (containingDeclaration as? PackageFragmentDescriptor)?.fqName ?: return emptyList() - val scope = module.getPackage(packageFqName).memberScope + val containingDeclaration = containingDeclaration + val scopes = when (containingDeclaration) { + is PackageFragmentDescriptor -> { + listOf(module.getPackage(containingDeclaration.fqName).memberScope) + } + is ClassDescriptor -> { + containingDeclaration.findClassifiersFromModule(module).mapNotNull { (it as? ClassDescriptor)?.unsubstitutedMemberScope } + } + else -> return emptyList() + } return when (this) { - is FunctionDescriptor -> scope.getContributedFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED) - is PropertyDescriptor -> scope.getContributedVariables(name, NoLookupLocation.FOR_ALREADY_TRACKED) + is FunctionDescriptor -> scopes.flatMap { it.getContributedFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED) } + is PropertyDescriptor -> scopes.flatMap { it.getContributedVariables(name, NoLookupLocation.FOR_ALREADY_TRACKED) } else -> throw AssertionError("Unsupported declaration: $this") } } diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DeclaredHeaderMarker.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DeclaredHeaderMarker.kt index ffacfe1f7c4..8fd9027d68a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DeclaredHeaderMarker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/DeclaredHeaderMarker.kt @@ -18,9 +18,9 @@ package org.jetbrains.kotlin.idea.highlighter.markers import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor +import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor import org.jetbrains.kotlin.idea.core.toDescriptor import org.jetbrains.kotlin.idea.highlighter.sourceKind -import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.MultiTargetPlatform @@ -63,10 +63,20 @@ internal fun KtDeclaration.headerDeclarationIfAny(): KtDeclaration? { return DescriptorToSourceUtils.descriptorToDeclaration(headerDescriptor) as? KtDeclaration } -internal fun KtDeclaration.liftToHeader(): KtDeclaration? { - return when { - hasModifier(KtTokens.HEADER_KEYWORD) -> this - hasModifier(KtTokens.IMPL_KEYWORD) -> headerDeclarationIfAny() - else -> null +private fun DeclarationDescriptor.liftToHeader(): DeclarationDescriptor? { + if (this is MemberDescriptor) { + return when { + isHeader -> this + isImpl -> headerDescriptor() + else -> null + } } + + return null +} + +internal fun KtDeclaration.liftToHeader(): KtDeclaration? { + val descriptor = resolveToDescriptor() + val headerDescriptor = descriptor.liftToHeader() ?: return null + return DescriptorToSourceUtils.descriptorToDeclaration(headerDescriptor) as? KtDeclaration } \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/src/test/test.kt new file mode 100644 index 00000000000..89e4c5db8c0 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + fun baz() + fun baz(n: Int) + fun bar(n: Int) +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/src/test/test.kt new file mode 100644 index 00000000000..0b8b6c9a70c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JS/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun baz() { } + impl fun baz(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/src/test/test.kt new file mode 100644 index 00000000000..0b8b6c9a70c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/after/JVM/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun baz() { } + impl fun baz(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/src/test/test.kt new file mode 100644 index 00000000000..6b0a498495c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + fun /*rename*/foo() + fun foo(n: Int) + fun bar(n: Int) +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/src/test/test.kt new file mode 100644 index 00000000000..6ac1f5603bc --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JS/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun foo() { } + impl fun foo(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/src/test/test.kt new file mode 100644 index 00000000000..6ac1f5603bc --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/before/JVM/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun foo() { } + impl fun foo(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/headersAndImplsByHeaderClassMemberFun.test b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/headersAndImplsByHeaderClassMemberFun.test new file mode 100644 index 00000000000..6bae1474a7c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/headersAndImplsByHeaderClassMemberFun.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/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/src/test/test.kt new file mode 100644 index 00000000000..409afa78aa8 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + var baz: Int + var bar: Int +} + +fun test(c: C) { + c.baz + c.baz = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/src/test/test.kt new file mode 100644 index 00000000000..80165c576e5 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JS/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var baz: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.baz + c.baz = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/src/test/test.kt new file mode 100644 index 00000000000..80165c576e5 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/after/JVM/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var baz: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.baz + c.baz = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/src/test/test.kt new file mode 100644 index 00000000000..fd906afecec --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + var /*rename*/foo: Int + var bar: Int +} + +fun test(c: C) { + c.foo + c.foo = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/src/test/test.kt new file mode 100644 index 00000000000..ab3f475ec9b --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JS/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var foo: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.foo + c.foo = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/src/test/test.kt new file mode 100644 index 00000000000..ab3f475ec9b --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/before/JVM/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var foo: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.foo + c.foo = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/headersAndImplsByHeaderClassMemberVal.test b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/headersAndImplsByHeaderClassMemberVal.test new file mode 100644 index 00000000000..6bae1474a7c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/headersAndImplsByHeaderClassMemberVal.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/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/src/test/test.kt new file mode 100644 index 00000000000..89e4c5db8c0 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + fun baz() + fun baz(n: Int) + fun bar(n: Int) +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/src/test/test.kt new file mode 100644 index 00000000000..0b8b6c9a70c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JS/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun baz() { } + impl fun baz(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/src/test/test.kt new file mode 100644 index 00000000000..0b8b6c9a70c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/after/JVM/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun baz() { } + impl fun baz(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.baz() + c.baz(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/src/test/test.kt new file mode 100644 index 00000000000..7e3180861af --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + fun foo() + fun foo(n: Int) + fun bar(n: Int) +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/src/test/test.kt new file mode 100644 index 00000000000..c9a19d808cd --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JS/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun /*rename*/foo() { } + impl fun foo(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/src/test/test.kt new file mode 100644 index 00000000000..6ac1f5603bc --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/before/JVM/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +impl class C { + impl fun foo() { } + impl fun foo(n: Int) { } + impl fun bar(n: Int) { } +} + +fun test(c: C) { + c.foo() + c.foo(1) + c.bar(1) +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/headersAndImplsByImplClassMemberFun.test b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/headersAndImplsByImplClassMemberFun.test new file mode 100644 index 00000000000..933fd3546c1 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/headersAndImplsByImplClassMemberFun.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/headersAndImplsByImplClassMemberVal/after/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/Common/src/test/test.kt new file mode 100644 index 00000000000..409afa78aa8 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + var baz: Int + var bar: Int +} + +fun test(c: C) { + c.baz + c.baz = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/src/test/test.kt new file mode 100644 index 00000000000..4ee2c8bc8ef --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JS/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var baz: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.baz + c.baz = 1 + bar + bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/src/test/test.kt new file mode 100644 index 00000000000..80165c576e5 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/after/JVM/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var baz: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.baz + c.baz = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/Common.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/Common.iml new file mode 100644 index 00000000000..0ecf9949f6c --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/Common.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/src/test/test.kt new file mode 100644 index 00000000000..27920412294 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/Common/src/test/test.kt @@ -0,0 +1,13 @@ +package test + +header class C { + var foo: Int + var bar: Int +} + +fun test(c: C) { + c.foo + c.foo = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/JS.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/JS.iml new file mode 100644 index 00000000000..82d3e6bdf49 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/JS.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/src/test/test.kt new file mode 100644 index 00000000000..0ca9e21f603 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JS/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var /*rename*/foo: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.foo + c.foo = 1 + bar + bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/JVM.iml b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/JVM.iml new file mode 100644 index 00000000000..c3173af9ec7 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/JVM.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/src/test/test.kt b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/src/test/test.kt new file mode 100644 index 00000000000..ab3f475ec9b --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/before/JVM/src/test/test.kt @@ -0,0 +1,18 @@ +package test + +impl class C { + impl var foo: Int + get() = 1 + set(value) {} + + impl var bar: Int + get() = 1 + set(value) {} +} + +fun test(c: C) { + c.foo + c.foo = 1 + c.bar + c.bar = 1 +} \ No newline at end of file diff --git a/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/headersAndImplsByImplClassMemberVal.test b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/headersAndImplsByImplClassMemberVal.test new file mode 100644 index 00000000000..933fd3546c1 --- /dev/null +++ b/idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/headersAndImplsByImplClassMemberVal.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/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java index f061569c208..61297b1d84f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java @@ -48,6 +48,18 @@ public class MultiModuleRenameTestGenerated extends AbstractMultiModuleRenameTes doTest(fileName); } + @TestMetadata("headersAndImplsByHeaderClassMemberFun/headersAndImplsByHeaderClassMemberFun.test") + public void testHeadersAndImplsByHeaderClassMemberFun_HeadersAndImplsByHeaderClassMemberFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberFun/headersAndImplsByHeaderClassMemberFun.test"); + doTest(fileName); + } + + @TestMetadata("headersAndImplsByHeaderClassMemberVal/headersAndImplsByHeaderClassMemberVal.test") + public void testHeadersAndImplsByHeaderClassMemberVal_HeadersAndImplsByHeaderClassMemberVal() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderClassMemberVal/headersAndImplsByHeaderClassMemberVal.test"); + doTest(fileName); + } + @TestMetadata("headersAndImplsByHeaderFun/headersAndImplsByHeaderFun.test") public void testHeadersAndImplsByHeaderFun_HeadersAndImplsByHeaderFun() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByHeaderFun/headersAndImplsByHeaderFun.test"); @@ -66,6 +78,18 @@ public class MultiModuleRenameTestGenerated extends AbstractMultiModuleRenameTes doTest(fileName); } + @TestMetadata("headersAndImplsByImplClassMemberFun/headersAndImplsByImplClassMemberFun.test") + public void testHeadersAndImplsByImplClassMemberFun_HeadersAndImplsByImplClassMemberFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberFun/headersAndImplsByImplClassMemberFun.test"); + doTest(fileName); + } + + @TestMetadata("headersAndImplsByImplClassMemberVal/headersAndImplsByImplClassMemberVal.test") + public void testHeadersAndImplsByImplClassMemberVal_HeadersAndImplsByImplClassMemberVal() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByImplClassMemberVal/headersAndImplsByImplClassMemberVal.test"); + doTest(fileName); + } + @TestMetadata("headersAndImplsByImplFun/headersAndImplsByImplFun.test") public void testHeadersAndImplsByImplFun_HeadersAndImplsByImplFun() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/renameMultiModule/headersAndImplsByImplFun/headersAndImplsByImplFun.test");