Drop KtLightClass#getFqName() and some usages of classFqName in KtLightClassForDecompiledDeclaration

This commit is contained in:
Pavel V. Talanov
2016-07-26 16:37:29 +03:00
parent 1fda24fbbf
commit 5a1a1fc03a
10 changed files with 24 additions and 28 deletions
@@ -26,7 +26,6 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.asJava.KtJavaMirrorMarker;
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder;
import org.jetbrains.kotlin.idea.KotlinLanguage;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.psi.KtClassOrObject;
import org.jetbrains.kotlin.psi.KtFile;
@@ -71,13 +70,6 @@ public class FakeLightClassForFileOfPackage extends AbstractLightClass implement
return false;
}
@NotNull
@Override
public FqName getFqName() {
return delegate.getFqName();
}
@NotNull
@Override
public PsiClass getDelegate() {
@@ -21,6 +21,4 @@ import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtClassOrObject
interface KtLightClass : PsiClass, KtLightDeclaration<KtClassOrObject, PsiClass> {
fun getFqName(): FqName
}
interface KtLightClass : PsiClass, KtLightDeclaration<KtClassOrObject, PsiClass>
@@ -106,7 +106,8 @@ class KtLightClassForFacade private constructor(
override val kotlinOrigin: KtClassOrObject? get() = null
override fun getFqName(): FqName = facadeClassFqName
val fqName: FqName
get() = facadeClassFqName
override fun getModifierList() = modifierList
@@ -27,6 +27,7 @@ class KtLightClassForInterfaceDefaultImpls(
: KtLightClassForSourceDeclaration({ classFqName }, classOrObject){
override fun getQualifiedName(): String = classFqName.asString()
override fun getName() = JvmAbi.DEFAULT_IMPLS_CLASS_NAME
override fun getParent() = containingClass
override fun copy(): PsiElement {
@@ -74,8 +74,6 @@ abstract class KtLightClassForSourceDeclaration(
override val kotlinOrigin: KtClassOrObject = classOrObject
override fun getFqName(): FqName = classFqName
abstract override fun copy(): PsiElement
abstract override fun getParent(): PsiElement?
abstract override fun getQualifiedName(): String?
@@ -159,12 +157,12 @@ abstract class KtLightClassForSourceDeclaration(
val aClass = other as KtLightClassForSourceDeclaration
if (classFqName != aClass.classFqName) return false
if (classOrObject != aClass.classOrObject) return false
return true
}
override fun hashCode(): Int = classFqName.hashCode()
override fun hashCode(): Int = classOrObject.hashCode()
override fun getContainingClass(): PsiClass? {
if (classOrObject.parent === classOrObject.containingFile) return null
@@ -186,7 +184,7 @@ abstract class KtLightClassForSourceDeclaration(
override fun getTypeParameters(): Array<PsiTypeParameter> = _typeParameterList.typeParameters
override fun getName(): String? = classFqName.shortName().asString()
override fun getName(): String? = classOrObject.nameAsName?.asString()
private val _modifierList : PsiModifierList by lazy(LazyThreadSafetyMode.PUBLICATION) {
object : KtLightModifierListWithExplicitModifiers(this@KtLightClassForSourceDeclaration, computeModifiers()) {
@@ -24,7 +24,10 @@ class KtLightClassImpl(
classFqNameFunction: (KtClassOrObject) -> FqName,
classOrObject: KtClassOrObject
) : KtLightClassForSourceDeclaration(classFqNameFunction, classOrObject) {
override fun getQualifiedName() = classFqName.asString()
val fqName: FqName
get() = fqName
override fun getQualifiedName() = classOrObject.fqName?.asString()
override fun getParent() = if (classOrObject.isTopLevel())
containingFile
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.classes.KtLightClassForEnumEntry
import org.jetbrains.kotlin.asJava.classes.KtLightClassImpl
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtDeclaration
@@ -140,7 +141,7 @@ sealed class KtLightFieldImpl(
is PsiEnumConstant -> {
val kotlinEnumEntry = (origin as? LightMemberOriginForDeclaration)?.originalElement as? KtEnumEntry
val initializingClass = if (kotlinEnumEntry != null && kotlinEnumEntry.declarations.isNotEmpty()) {
val enumConstantFqName = FqName(containingClass.getFqName().asString() + "." + kotlinEnumEntry.name)
val enumConstantFqName = FqName((containingClass as KtLightClassImpl).fqName.asString() + "." + kotlinEnumEntry.name)
KtLightClassForEnumEntry(enumConstantFqName, kotlinEnumEntry, delegate)
}
else null
@@ -32,7 +32,7 @@ class KtLightClassForDecompiledDeclaration(
override val kotlinOrigin: KtClassOrObject?,
private val file: KtClsFile
) : KtLightClassBase(clsDelegate.manager) {
private val fqName = kotlinOrigin?.fqName ?: FqName(clsDelegate.qualifiedName)
val fqName = kotlinOrigin?.fqName ?: FqName(clsDelegate.qualifiedName)
override fun copy() = this
@@ -54,15 +54,13 @@ class KtLightClassForDecompiledDeclaration(
override fun getNavigationElement() = kotlinOrigin?.navigationElement ?: file
override fun getFqName() = fqName
override fun getParent() = clsDelegate.parent
override fun equals(other: Any?): Boolean =
other is KtLightClassForDecompiledDeclaration &&
getFqName() == other.getFqName()
fqName == other.fqName
override fun hashCode(): Int =
getFqName().hashCode()
fqName.hashCode()
}
@@ -19,11 +19,15 @@ package org.jetbrains.kotlin.idea.presentation
import com.intellij.ide.util.PsiElementListCellRenderer
import com.intellij.psi.presentation.java.ClassPresentationUtil
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.name.FqName
class KtLightClassListCellRenderer : PsiElementListCellRenderer<KtLightClass>() {
override fun getElementText(element: KtLightClass) = ClassPresentationUtil.getNameForClass(element, false)
override fun getContainerText(element: KtLightClass, name: String) = "(" + element.getFqName().parent() + ")"
// TODO: correct text for local, anonymous, enum entries ... etc
override fun getContainerText(element: KtLightClass, name: String) = element.qualifiedName?.let { qName ->
"(" + FqName(qName).parent().asString() + ")"
} ?: ""
override fun getIconFlags() = 0
}
@@ -80,7 +80,7 @@ private fun Converter.convertImport(fqName: FqName, ref: PsiJavaCodeReferenceEle
private fun Converter.convertStaticImportOnDemand(fqName: FqName, target: PsiElement?): List<String> {
when (target) {
is KtLightClassForFacade -> return listOf(target.getFqName().parent().render() + ".*")
is KtLightClassForFacade -> return listOf(target.fqName.parent().render() + ".*")
is KtLightClass -> {
val kotlinOrigin = target.kotlinOrigin
@@ -140,7 +140,7 @@ private fun convertStaticExplicitImport(fqName: FqName, target: PsiElement?): Li
private fun convertNonStaticImport(fqName: FqName, isOnDemand: Boolean, target: PsiElement?): List<String> {
when (target) {
is KtLightClassForFacade -> return listOf(target.getFqName().parent().render() + ".*")
is KtLightClassForFacade -> return listOf(target.fqName.parent().render() + ".*")
is KtLightClass -> {
if (!isOnDemand) {
@@ -161,4 +161,4 @@ private val DEFAULT_IMPORTS_SET: Set<FqName> = JvmPlatform.defaultModuleParamete
.map { it.fqnPart() }
.toSet()
private fun isImportedByDefault(c: KtLightClass) = c.getFqName().parent() in DEFAULT_IMPORTS_SET
private fun isImportedByDefault(c: KtLightClass) = c.qualifiedName?.let { FqName(it).parent() } in DEFAULT_IMPORTS_SET