diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java index 6f96227b3e9..c824cc2507b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetObjectDeclaration.java @@ -76,8 +76,16 @@ public class JetObjectDeclaration extends JetNamedDeclarationStub("object $name").getNameAsDeclaration()!! + } + public fun createIdentifier(name: String): PsiElement { return createSimpleName(name).getIdentifier()!! } diff --git a/idea/testData/refactoring/rename/defaultObject/before/javaUsage.java b/idea/testData/refactoring/rename/defaultObject/before/JavaUsage.java similarity index 100% rename from idea/testData/refactoring/rename/defaultObject/before/javaUsage.java rename to idea/testData/refactoring/rename/defaultObject/before/JavaUsage.java diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/JavaUsage.java b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/JavaUsage.java new file mode 100644 index 00000000000..f99099cce52 --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/JavaUsage.java @@ -0,0 +1,8 @@ +class JavaUsage { + public static void main(String[] args) { + System.out.println(Foo.CONST); + Foo.s(); + Foo.Baz.f(); + Foo foo = new Foo(); // not usage of default object + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/toBeRenamed.kt b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/toBeRenamed.kt new file mode 100644 index 00000000000..d6d3742bc81 --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/toBeRenamed.kt @@ -0,0 +1,11 @@ +class Foo { + default object Baz { + fun f() { + } + + platformStatic fun s() { + } + + val CONST = 42 + } +} diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/usage.kt b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/usage.kt new file mode 100644 index 00000000000..b3b0f6e67be --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/after/usage.kt @@ -0,0 +1,8 @@ +fun main(args: Array) { + // class object usages + Foo.f() + val x = Foo + + Foo.Baz.f() + val xx = Foo.Baz +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/JavaUsage.java b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/JavaUsage.java new file mode 100644 index 00000000000..7bdbda1eb52 --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/JavaUsage.java @@ -0,0 +1,8 @@ +class JavaUsage { + public static void main(String[] args) { + System.out.println(Foo.CONST); + Foo.s(); + Foo.Default.f(); + Foo foo = new Foo(); // not usage of default object + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/toBeRenamed.kt b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/toBeRenamed.kt new file mode 100644 index 00000000000..d85d01717cc --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/toBeRenamed.kt @@ -0,0 +1,11 @@ +class Foo { + default object { + fun f() { + } + + platformStatic fun s() { + } + + val CONST = 42 + } +} diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/usage.kt b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/usage.kt new file mode 100644 index 00000000000..4abbf279e77 --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/before/usage.kt @@ -0,0 +1,8 @@ +fun main(args: Array) { + // class object usages + Foo.f() + val x = Foo + + Foo.Default.f() + val xx = Foo.Default +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/defaultObjectWithDefaultName/defaultObject.test b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/defaultObject.test new file mode 100644 index 00000000000..05278da2d6c --- /dev/null +++ b/idea/testData/refactoring/rename/defaultObjectWithDefaultName/defaultObject.test @@ -0,0 +1,7 @@ +{ + "type": "KOTLIN_CLASS", + "classId": "/Foo.Default", + "oldName": "Default", + "newName": "Baz", + "mainFile": "toBeRenamed.kt" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java index 5499175e465..77a593341b9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java @@ -42,6 +42,12 @@ public class RenameTestGenerated extends AbstractRenameTest { doTest(fileName); } + @TestMetadata("defaultObjectWithDefaultName/defaultObject.test") + public void testDefaultObjectWithDefaultName_DefaultObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/rename/defaultObjectWithDefaultName/defaultObject.test"); + doTest(fileName); + } + @TestMetadata("renameCompareTo/compareTo.test") public void testRenameCompareTo_CompareTo() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/rename/renameCompareTo/compareTo.test");