From bbf951ff0371695ca87a734456abc92191375280 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 15 Dec 2014 15:22:23 +0300 Subject: [PATCH] Move: Fix reference binding for the case of default target package #KT-6457 Fixed --- .../src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt | 1 + .../misc/moveClassFromDefaultPackage/after/Y.kt | 4 ++++ .../misc/moveClassFromDefaultPackage/after/a/X.kt | 7 +++++++ .../misc/moveClassFromDefaultPackage/before/X.kt | 5 +++++ .../misc/moveClassFromDefaultPackage/before/Y.kt | 4 ++++ .../moveClassFromDefaultPackage.test | 5 +++++ .../jet/plugin/refactoring/move/JetMoveTestGenerated.java | 6 ++++++ 7 files changed, 32 insertions(+) create mode 100644 idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/Y.kt create mode 100644 idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/a/X.kt create mode 100644 idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/X.kt create mode 100644 idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/Y.kt create mode 100644 idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt index 378ff386c97..28ae4412067 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/psiUtil/jetPsiUtil.kt @@ -257,6 +257,7 @@ public fun JetSimpleNameExpression.getTopmostParentQualifiedExpressionForSelecto public fun JetElement.getQualifiedElementSelector(): JetElement? { return when (this) { is JetSimpleNameExpression -> this + is JetCallExpression -> getCalleeExpression() is JetQualifiedExpression -> { val selector = getSelectorExpression() if (selector is JetCallExpression) selector.getCalleeExpression() else selector diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/Y.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/Y.kt new file mode 100644 index 00000000000..5f41dde514f --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/Y.kt @@ -0,0 +1,4 @@ +class Y { + fun foo() { + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/a/X.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/a/X.kt new file mode 100644 index 00000000000..0eb2e134b95 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/after/a/X.kt @@ -0,0 +1,7 @@ +package a + +class X: Y() { + fun main() { + Y().foo() + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/X.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/X.kt new file mode 100644 index 00000000000..c1302436da1 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/X.kt @@ -0,0 +1,5 @@ +class X: Y() { + fun main() { + Y().foo() + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/Y.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/Y.kt new file mode 100644 index 00000000000..5f41dde514f --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/before/Y.kt @@ -0,0 +1,4 @@ +class Y { + fun foo() { + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test new file mode 100644 index 00000000000..47bd0aec25e --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test @@ -0,0 +1,5 @@ +{ + "mainFile": "X.kt", + "type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS", + "targetPackage": "a" +} diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java index dc49eff92c4..5dc75780a12 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java @@ -246,6 +246,12 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest { doTest(fileName); } + @TestMetadata("kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test") + public void testKotlin_moveTopLevelDeclarations_misc_moveClassFromDefaultPackage_MoveClassFromDefaultPackage() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassFromDefaultPackage/moveClassFromDefaultPackage.test"); + doTest(fileName); + } + @TestMetadata("kotlin/moveTopLevelDeclarations/misc/moveClassToDefaultPackage/moveClassToDefaultPackage.test") public void testKotlin_moveTopLevelDeclarations_misc_moveClassToDefaultPackage_MoveClassToDefaultPackage() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassToDefaultPackage/moveClassToDefaultPackage.test");