diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/FakeLightClassForFileOfPackage.java b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/FakeLightClassForFileOfPackage.java index d764ec9ba75..fff2a5b1fc4 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/FakeLightClassForFileOfPackage.java +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/FakeLightClassForFileOfPackage.java @@ -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() { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClass.kt index b84f9564d47..aff3fcf4efd 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClass.kt @@ -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 { - fun getFqName(): FqName -} +interface KtLightClass : PsiClass, KtLightDeclaration diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt index 2ec37ddda6a..c2251a55b1c 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt @@ -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 diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForInterfaceDefaultImpls.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForInterfaceDefaultImpls.kt index 64c70ee51b6..b6acf9eb5d2 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForInterfaceDefaultImpls.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForInterfaceDefaultImpls.kt @@ -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 { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt index ac14626e711..7daeed4cc22 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt @@ -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 = _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()) { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassImpl.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassImpl.kt index b45db1db2c3..d05f9f81406 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassImpl.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassImpl.kt @@ -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 diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightFieldImpl.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightFieldImpl.kt index 93e49340ed1..602bc216724 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightFieldImpl.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightFieldImpl.kt @@ -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 diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KtLightClassForDecompiledDeclaration.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KtLightClassForDecompiledDeclaration.kt index 3f66309060c..e19da5b4721 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KtLightClassForDecompiledDeclaration.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KtLightClassForDecompiledDeclaration.kt @@ -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() } diff --git a/idea/src/org/jetbrains/kotlin/idea/presentation/KtLightClassListCellRenderer.kt b/idea/src/org/jetbrains/kotlin/idea/presentation/KtLightClassListCellRenderer.kt index b3035f10767..40893b05ea9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/presentation/KtLightClassListCellRenderer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/presentation/KtLightClassListCellRenderer.kt @@ -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() { 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 } diff --git a/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt b/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt index bac368b92e4..9b41991b090 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/importConversion.kt @@ -80,7 +80,7 @@ private fun Converter.convertImport(fqName: FqName, ref: PsiJavaCodeReferenceEle private fun Converter.convertStaticImportOnDemand(fqName: FqName, target: PsiElement?): List { 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 { 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 = 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