diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/SymbolLightMemberBase.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/SymbolLightMemberBase.kt index fb735813fe3..f3da79e1af9 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/SymbolLightMemberBase.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/SymbolLightMemberBase.kt @@ -10,22 +10,24 @@ import com.intellij.psi.PsiIdentifier import com.intellij.psi.PsiMember import com.intellij.psi.PsiMethod import com.intellij.psi.javadoc.PsiDocComment +import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin -import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.elements.KtLightElementBase import org.jetbrains.kotlin.asJava.elements.KtLightMember +import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase import org.jetbrains.kotlin.psi.KtDeclaration internal abstract class SymbolLightMemberBase( override val lightMemberOrigin: LightMemberOrigin?, - private val containingClass: KtLightClass, + private val containingClass: SymbolLightClassBase, ) : KtLightElementBase(containingClass), PsiMember, KtLightMember { + protected val ktModule: KtModule get() = containingClass.ktModule override fun hasModifierProperty(name: String): Boolean = modifierList?.hasModifierProperty(name) ?: false override fun toString(): String = "${this::class.java.simpleName}:$name" - override fun getContainingClass() = containingClass + override fun getContainingClass(): SymbolLightClassBase = containingClass abstract override fun getNameIdentifier(): PsiIdentifier? diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt index bd4d7c267ae..e8d42b1faeb 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClass.kt @@ -293,7 +293,6 @@ internal open class SymbolLightClass(classOrObject: KtClassOrObject, ktModule: K enumEntryName = name, containingClass = this@SymbolLightClass, lightMemberOrigin = null, - ktModule = ktModule, ) } } 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 bdfb4217056..b0bdb536e51 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 @@ -163,7 +163,6 @@ abstract class SymbolLightClassForClassOrObject(protected val classOrObject: KtC isTopLevel = false, forceStatic = true, takePropertyVisibility = it.isConstOrJvmField, - ktModule = ktModule, ) } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt index 0328cc6ea18..f910bf53767 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt @@ -283,7 +283,6 @@ internal fun SymbolLightClassBase.createPropertyAccessors( containingClass = this@createPropertyAccessors, isTopLevel = isTopLevel, suppressStatic = suppressStatic, - ktModule = ktModule, ) ) } @@ -309,7 +308,6 @@ internal fun SymbolLightClassBase.createPropertyAccessors( containingClass = this@createPropertyAccessors, isTopLevel = isTopLevel, suppressStatic = suppressStatic, - ktModule = ktModule, ) ) } @@ -356,7 +354,6 @@ internal fun SymbolLightClassBase.createField( isTopLevel = isTopLevel, forceStatic = forceStatic, takePropertyVisibility = takePropertyVisibility, - ktModule = ktModule, ) ) } 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 16945de3125..5ccf425a2d6 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 @@ -13,7 +13,6 @@ import com.intellij.util.IncorrectOperationException import com.intellij.util.PlatformIcons 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 @@ -21,11 +20,12 @@ 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 +import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase import org.jetbrains.kotlin.psi.KtNamedDeclaration import javax.swing.Icon internal abstract class SymbolLightField protected constructor( - private val containingClass: KtLightClass, + containingClass: SymbolLightClassBase, lightMemberOrigin: LightMemberOrigin?, ) : SymbolLightMemberBase(lightMemberOrigin, containingClass), KtLightField { override fun setInitializer(initializer: PsiExpression?) = cannotModify() @@ -35,9 +35,6 @@ internal abstract class SymbolLightField protected constructor( override fun getLanguage(): Language = KotlinLanguage.INSTANCE - override fun getParent() = containingClass - override fun getContainingClass() = containingClass - override fun getContainingFile(): PsiFile? = containingClass.containingFile override fun hasInitializer(): Boolean = initializer !== null private val _identifier: PsiIdentifier by lazyPub { 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 df767dbe297..70af2a1e001 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 @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.light.classes.symbol.fields import com.intellij.psi.* import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtEnumEntrySymbol -import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.classes.lazyPub @@ -28,7 +27,6 @@ internal class SymbolLightFieldForEnumEntry( private val enumEntryName: String, containingClass: SymbolLightClass, override val lightMemberOrigin: LightMemberOrigin?, - val ktModule: KtModule, ) : SymbolLightField(containingClass, lightMemberOrigin), PsiEnumConstant { internal fun withEnumEntrySymbol(action: KtAnalysisSession.(KtEnumEntrySymbol) -> T): T = analyzeForLightClasses(ktModule) { action(enumEntry.getEnumEntrySymbol()) 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 b9971d740e8..262c35565f6 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 @@ -13,10 +13,10 @@ 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.annotations.SymbolLightSimpleAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnotation +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 import org.jetbrains.kotlin.light.classes.symbol.nonExistentType @@ -25,12 +25,12 @@ import org.jetbrains.kotlin.psi.KtObjectDeclaration internal class SymbolLightFieldForObject( private val objectDeclaration: KtObjectDeclaration, - containingClass: KtLightClass, + containingClass: SymbolLightClassForClassOrObject, private val name: String, lightMemberOrigin: LightMemberOrigin?, ) : SymbolLightField(containingClass, lightMemberOrigin) { private fun withObjectDeclarationSymbol(action: KtAnalysisSession.(KtNamedClassOrObjectSymbol) -> T): T = - analyzeForLightClasses(objectDeclaration) { + analyzeForLightClasses(ktModule) { action(requireNotNull(objectDeclaration.getNamedClassOrObjectSymbol())) } 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 39876d105ef..aae6f0ae1ba 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 @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.symbols.sourcePsiSafe import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode -import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget @@ -41,7 +40,6 @@ internal class SymbolLightFieldForProperty( isTopLevel: Boolean, forceStatic: Boolean, takePropertyVisibility: Boolean, - private val ktModule: KtModule, ) : SymbolLightField(containingClass, lightMemberOrigin) { override val kotlinOrigin: KtCallableDeclaration? = propertySymbol.sourcePsiSafe() private val propertySymbolPointer: KtSymbolPointer = propertySymbol.createPointer() 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 676bca5d391..17846a253b4 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 @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.analysis.api.KtNonConstantInitializerValue import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode -import org.jetbrains.kotlin.analysis.project.structure.KtModule 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 @@ -48,7 +47,6 @@ internal class SymbolLightAccessorMethod( containingClass: SymbolLightClassBase, private val isTopLevel: Boolean, private val suppressStatic: Boolean = false, - private val ktModule: KtModule, ) : SymbolLightMethodBase( lightMemberOrigin, containingClass, diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt index 41e0e5667c5..87ac09dbab4 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethod.kt @@ -31,7 +31,7 @@ internal abstract class SymbolLightMethod( ) : SymbolLightMethodBase( lightMemberOrigin, containingClass, - methodIndex + methodIndex, ) { private var _isVarArgs: Boolean = functionSymbol.valueParameters.any { it.isVararg } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt index adb1047d57a..b30744373b5 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt @@ -15,10 +15,8 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtAnnotatedSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithVisibility import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule -import org.jetbrains.kotlin.analysis.project.structure.getKtModule import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.KotlinLightReferenceListBuilder -import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.classes.cannotModify import org.jetbrains.kotlin.asJava.elements.KtLightMethod @@ -34,10 +32,9 @@ import org.jetbrains.kotlin.utils.addToStdlib.ifTrue internal abstract class SymbolLightMethodBase( lightMemberOrigin: LightMemberOrigin?, - containingClass: KtLightClass, - private val methodIndex: Int + containingClass: SymbolLightClassBase, + private val methodIndex: Int, ) : SymbolLightMemberBase(lightMemberOrigin, containingClass), KtLightMethod { - override fun getBody(): PsiCodeBlock? = null override fun getReturnTypeElement(): PsiTypeElement? = null @@ -105,7 +102,7 @@ internal abstract class SymbolLightMethodBase( if (containingClass is KtLightClassForFacade) return defaultName if (hasPublishedApiAnnotation(annotationUseSiteTarget)) return defaultName - val moduleName = (getKtModule(project) as? KtSourceModule)?.moduleName ?: return defaultName + val moduleName = (ktModule as? KtSourceModule)?.moduleName ?: return defaultName return mangleInternalName(defaultName, moduleName) }