From 6e3a98d8451a0cc823ce8ee3e85370ec60d0fe98 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Wed, 12 Apr 2017 14:06:14 +0200 Subject: [PATCH] update package statement for already moved classes (dir with kotlin files) --- .../MoveClassesOrPackagesUtil.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesUtil.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesUtil.java index ba1556161ef8..1a0d43908fd8 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesUtil.java @@ -242,13 +242,16 @@ public class MoveClassesOrPackagesUtil { file = moveDestination.findFile(file.getName()); - if (newPackage != null && file instanceof PsiClassOwner && !FileTypeUtils.isInServerPageFile(file) && !PsiUtil.isModuleFile(file)) { - // Do not rely on class instance identity retention after setPackageName (Scala) - String aClassName = aClass.getName(); - ((PsiClassOwner)file).setPackageName(newPackage.getQualifiedName()); - newClass = findClassByName((PsiClassOwner)file, aClassName); - LOG.assertTrue(newClass != null, "name:" + aClassName + " file:" + file + " classes:" + Arrays.toString(((PsiClassOwner)file).getClasses())); - } + } + + if (newPackage != null && file instanceof PsiClassOwner && !FileTypeUtils.isInServerPageFile(file) && + !PsiUtil.isModuleFile(file) && + !Comparing.strEqual(newPackage.getQualifiedName(), ((PsiClassOwner)file).getPackageName())) { + // Do not rely on class instance identity retention after setPackageName (Scala) + String aClassName = aClass.getName(); + ((PsiClassOwner)file).setPackageName(newPackage.getQualifiedName()); + newClass = findClassByName((PsiClassOwner)file, aClassName); + LOG.assertTrue(newClass != null, "name:" + aClassName + " file:" + file + " classes:" + Arrays.toString(((PsiClassOwner)file).getClasses())); } return newClass; }