Rename: Fix exceptions on moving file with facade class to another package

#KT-14325 Fixed
This commit is contained in:
Alexey Sedunov
2016-11-23 12:08:52 +03:00
parent cedbac6b43
commit 1bde0e12fd
4 changed files with 26 additions and 1 deletions
@@ -23,6 +23,7 @@ import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.impl.compiled.ClsFileImpl
import com.intellij.psi.stubs.PsiClassHolderFileStub
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
@@ -69,4 +70,13 @@ open class FakeFileForLightClass(
}
override fun isEquivalentTo(another: PsiElement?) = this == another
override fun setPackageName(packageName: String) {
if (lightClass() is KtLightClassForFacade) {
ktFile.packageDirective?.fqName = FqName(packageName)
}
else {
super.setPackageName(packageName)
}
}
}