diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt index 5164ed1e4ac..bdfb4217056 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForClassOrObject.kt @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.classes.getParentForLocalDeclaration import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.KtLightField +import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.toLightClass -import org.jetbrains.kotlin.light.classes.symbol.SymbolLightIdentifier import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmFieldAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation @@ -72,9 +72,7 @@ abstract class SymbolLightClassForClassOrObject(protected val classOrObject: KtC abstract override fun getOwnMethods(): List private val _identifier: PsiIdentifier by lazyPub { - withClassOrObjectSymbol { - SymbolLightIdentifier(this@SymbolLightClassForClassOrObject, it) - } + KtLightIdentifier(this, classOrObject) } override fun getNameIdentifier(): PsiIdentifier? = _identifier diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightField.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightField.kt index cf6a609ea26..16945de3125 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightField.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightField.kt @@ -15,7 +15,9 @@ import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.cannotModify +import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.KtLightField +import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.light.classes.symbol.SymbolLightMemberBase import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo @@ -38,6 +40,12 @@ internal abstract class SymbolLightField protected constructor( override fun getContainingFile(): PsiFile? = containingClass.containingFile override fun hasInitializer(): Boolean = initializer !== null + private val _identifier: PsiIdentifier by lazyPub { + KtLightIdentifier(this, kotlinOrigin) + } + + override fun getNameIdentifier(): PsiIdentifier = _identifier + override fun computeConstantValue(): Any? = null override fun computeConstantValue(visitedVars: MutableSet?): Any? = computeConstantValue() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt index cfa13088d33..df767dbe297 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForEnumEntry.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.light.classes.symbol.NullabilityType -import org.jetbrains.kotlin.light.classes.symbol.SymbolLightIdentifier import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClass import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForEnumEntry @@ -90,14 +89,6 @@ internal class SymbolLightFieldForEnumEntry( override fun getType(): PsiType = _type override fun getInitializer(): PsiExpression? = null - private val _identifier: PsiIdentifier by lazyPub { - withEnumEntrySymbol { enumEntrySymbol -> - SymbolLightIdentifier(this@SymbolLightFieldForEnumEntry, enumEntrySymbol) - } - } - - override fun getNameIdentifier(): PsiIdentifier = _identifier - override fun isValid(): Boolean = enumEntry.isValid override fun hashCode(): Int = enumEntry.hashCode() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt index eef5f45de0c..b9971d740e8 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForObject.kt @@ -5,14 +5,16 @@ package org.jetbrains.kotlin.light.classes.symbol.fields -import com.intellij.psi.* +import com.intellij.psi.PsiExpression +import com.intellij.psi.PsiModifier +import com.intellij.psi.PsiModifierList +import com.intellij.psi.PsiType import org.jetbrains.annotations.NotNull import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.lazyPub -import org.jetbrains.kotlin.light.classes.symbol.SymbolLightIdentifier import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolLightSimpleAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnotation import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses @@ -61,14 +63,6 @@ internal class SymbolLightFieldForObject( } ?: nonExistentType() } - private val _identifier: PsiIdentifier by lazyPub { - withObjectDeclarationSymbol { objectSymbol -> - SymbolLightIdentifier(this@SymbolLightFieldForObject, objectSymbol) - } - } - - override fun getNameIdentifier(): PsiIdentifier = _identifier - override fun getType(): PsiType = _type override fun getInitializer(): PsiExpression? = null //TODO diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt index 23d92b514e3..39876d105ef 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt @@ -5,7 +5,10 @@ package org.jetbrains.kotlin.light.classes.symbol.fields -import com.intellij.psi.* +import com.intellij.psi.PsiExpression +import com.intellij.psi.PsiModifier +import com.intellij.psi.PsiModifierList +import com.intellij.psi.PsiType import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.KtConstantInitializerValue import org.jetbrains.kotlin.analysis.api.base.KtConstantValue @@ -69,14 +72,6 @@ internal class SymbolLightFieldForProperty( override fun isDeprecated(): Boolean = _isDeprecated - private val _identifier: PsiIdentifier by lazyPub { - withPropertySymbol { propertySymbol -> - SymbolLightIdentifier(this@SymbolLightFieldForProperty, propertySymbol) - } - } - - override fun getNameIdentifier(): PsiIdentifier = _identifier - override fun getType(): PsiType = _returnedType override fun getName(): String = fieldName diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt index b4615e97534..676bca5d391 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_GETTER import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_SETTER import org.jetbrains.kotlin.asJava.classes.lazyPub +import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.light.classes.symbol.* import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations @@ -190,9 +191,7 @@ internal class SymbolLightAccessorMethod( override fun isDeprecated(): Boolean = _isDeprecated private val _identifier: PsiIdentifier by lazyPub { - analyzeForLightClasses(ktModule) { - SymbolLightIdentifier(this@SymbolLightAccessorMethod, propertySymbol()) - } + KtLightIdentifier(this, containingPropertyDeclaration) } override fun getNameIdentifier(): PsiIdentifier = _identifier diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt index d6e2de8eaa0..3657c17f257 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightNoArgConstructor.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.methods import com.intellij.psi.* import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.lazyPub -import org.jetbrains.kotlin.light.classes.symbol.SymbolLightIdentifier +import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForClassOrObject import org.jetbrains.kotlin.light.classes.symbol.classes.analyzeForLightClasses import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList @@ -29,7 +29,7 @@ internal class SymbolLightNoArgConstructor( override fun getTypeParameters(): Array = PsiTypeParameter.EMPTY_ARRAY private val _identifier: PsiIdentifier by lazyPub { - SymbolLightIdentifier(this, ktSymbol = null) + KtLightIdentifier(this, ktDeclaration = null) } override fun getNameIdentifier(): PsiIdentifier = _identifier