Removing import of removed package facade.

This commit is contained in:
Evgeny Gerashchenko
2015-03-25 20:07:02 +03:00
parent f789933683
commit a4d2d6506c
3 changed files with 14 additions and 6 deletions
@@ -163,8 +163,19 @@ public fun JetNamedDeclaration.getFileNameAfterMove(): String? {
}
// returns true if successful
private fun updateJavaReference(reference: PsiReferenceExpression, newElement: PsiElement): Boolean {
if (newElement is PsiMember) {
private fun updateJavaReference(reference: PsiReferenceExpression, oldElement: PsiElement, newElement: PsiElement): Boolean {
if (oldElement is PsiMember && newElement is PsiMember) {
// Remove import of old package facade, if any
val oldClassName = oldElement.getContainingClass()?.getQualifiedName()
if (oldClassName != null) {
val importOfOldClass = (reference.getContainingFile() as? PsiJavaFile)?.getImportList()?.getImportStatements()?.firstOrNull {
it.getQualifiedName() == oldClassName
}
if (importOfOldClass != null && importOfOldClass.resolve() == null) {
importOfOldClass.delete()
}
}
val newClass = newElement.getContainingClass()
if (newClass != null && reference.getQualifierExpression() != null) {
val mockMoveMembersOptions = MockMoveMembersOptions(newClass.getQualifiedName(), array(newElement))
@@ -231,7 +242,7 @@ fun postProcessMoveUsages(usages: List<UsageInfo>,
if (it is JetSimpleNameReference) {
it.bindToElement(newElement, shorteningMode)
}
else if (it is PsiReferenceExpression && updateJavaReference(it, newElement)) {
else if (it is PsiReferenceExpression && updateJavaReference(it, oldElement, newElement)) {
}
else {
it.bindToElement(newElement)
@@ -1,6 +1,4 @@
// TODO Import of old package stays here because of a bug
import newPackage.NewPackagePackage;
import oldPackage.OldPackagePackage;
class JavaUsage {
public static void main(String[] args) {
@@ -1,4 +1,3 @@
// TODO Import of old package stays here because of a bug
import oldPackage.OldPackagePackage;
class JavaUsage {