From 1fda24fbbf77c74c961aec0ffb04bfdcb2d9c0e7 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 26 Jul 2016 15:53:24 +0300 Subject: [PATCH] Local classes do not have qualified names Mirros java psi --- .../asJava/classes/KtLightClassForAnonymousDeclaration.kt | 1 - .../asJava/classes/KtLightClassForInterfaceDefaultImpls.kt | 2 ++ .../kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt | 1 + .../kotlin/asJava/classes/KtLightClassForSourceDeclaration.kt | 3 +-- .../org/jetbrains/kotlin/asJava/classes/KtLightClassImpl.kt | 2 ++ 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForAnonymousDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForAnonymousDeclaration.kt index ec25113ed21..8fff142e497 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForAnonymousDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForAnonymousDeclaration.kt @@ -109,7 +109,6 @@ internal open class KtLightClassForAnonymousDeclaration(fqNameFunction: ((KtClas } override fun getNameIdentifier() = null - override fun getQualifiedName(): String? = null override fun getModifierList(): PsiModifierList? = null override fun hasModifierProperty(name: String): Boolean = name == PsiModifier.FINAL override fun getExtendsList() = null 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 cb900a9325a..64c70ee51b6 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 @@ -25,6 +25,8 @@ class KtLightClassForInterfaceDefaultImpls( classFqName: FqName, classOrObject: KtClassOrObject) : KtLightClassForSourceDeclaration({ classFqName }, classOrObject){ + override fun getQualifiedName(): String = classFqName.asString() + override fun getParent() = containingClass override fun copy(): PsiElement { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt index a08b4f6cd31..5cb08fe3c3d 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt @@ -34,6 +34,7 @@ open class KtLightClassForLocalDeclaration( ) : KtLightClassForSourceDeclaration(classFqNameFunction, classOrObject) { override fun copy(): PsiElement = KtLightClassForLocalDeclaration(classFqNameFunction, classOrObject.copy() as KtClassOrObject) + override fun getQualifiedName(): String? = null override fun getParent() = _parent 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 d43d026f3ba..ac14626e711 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 @@ -78,6 +78,7 @@ abstract class KtLightClassForSourceDeclaration( abstract override fun copy(): PsiElement abstract override fun getParent(): PsiElement? + abstract override fun getQualifiedName(): String? override val clsDelegate: PsiClass by lazy(LazyThreadSafetyMode.PUBLICATION) { val javaFileStub = getJavaFileStub() @@ -187,8 +188,6 @@ abstract class KtLightClassForSourceDeclaration( override fun getName(): String? = classFqName.shortName().asString() - override fun getQualifiedName(): String? = classFqName.asString() - private val _modifierList : PsiModifierList by lazy(LazyThreadSafetyMode.PUBLICATION) { object : KtLightModifierListWithExplicitModifiers(this@KtLightClassForSourceDeclaration, computeModifiers()) { override val delegate: PsiAnnotationOwner 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 38a3880c705..b45db1db2c3 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,6 +24,8 @@ class KtLightClassImpl( classFqNameFunction: (KtClassOrObject) -> FqName, classOrObject: KtClassOrObject ) : KtLightClassForSourceDeclaration(classFqNameFunction, classOrObject) { + override fun getQualifiedName() = classFqName.asString() + override fun getParent() = if (classOrObject.isTopLevel()) containingFile else