diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightIdentifier.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightIdentifier.kt index b8ffb90fa07..65fbe1ca9b6 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightIdentifier.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightIdentifier.kt @@ -26,6 +26,7 @@ internal class FirLightIdentifier( is KtPrimaryConstructor -> ktDeclaration.getConstructorKeyword() ?: ktDeclaration.valueParameterList ?: ktDeclaration.containingClassOrObject?.nameIdentifier + is KtPropertyAccessor -> ktDeclaration.namePlaceholder is KtNamedDeclaration -> ktDeclaration.nameIdentifier else -> null diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/caches/SymbolLightClassFacadeCache.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/caches/SymbolLightClassFacadeCache.kt index 07b48f9463f..2b45d30a0a2 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/caches/SymbolLightClassFacadeCache.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/caches/SymbolLightClassFacadeCache.kt @@ -52,6 +52,7 @@ class SymbolLightClassFacadeCache(private val project: Project) { analyzeForLightClasses(firstFile) { FirLightClassForFacade(firstFile.manager, facadeClassFqName, ktFiles) } + ktFiles.all { it.isCompiled } -> { val file = ktFiles.firstOrNull { it.javaFileFacadeFqName == facadeClassFqName } as? KtClsFile ?: error("Can't find the representative decompiled file for $facadeClassFqName") @@ -64,6 +65,7 @@ class SymbolLightClassFacadeCache(private val project: Project) { ) ?: return null KtLightClassForDecompiledFacade(clsDelegate, clsDelegate.parent, file, classOrObject, ktFiles) } + else -> error("Source and compiled files are mixed: $ktFiles}") } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt index 266d2bc16a4..49dd134003b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForFacade.kt @@ -25,13 +25,13 @@ import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName import org.jetbrains.kotlin.idea.KotlinLanguage -import org.jetbrains.kotlin.light.classes.symbol.modifierLists.FirLightClassModifierList -import org.jetbrains.kotlin.light.classes.symbol.fields.FirLightField import org.jetbrains.kotlin.light.classes.symbol.NullabilityType import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations import org.jetbrains.kotlin.light.classes.symbol.annotations.hasInlineOnlyAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmFieldAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmMultifileClassAnnotation +import org.jetbrains.kotlin.light.classes.symbol.fields.FirLightField +import org.jetbrains.kotlin.light.classes.symbol.modifierLists.FirLightClassModifierList import org.jetbrains.kotlin.light.classes.symbol.toPsiVisibilityForMember import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind import org.jetbrains.kotlin.name.FqName diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/firLightClassUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/firLightClassUtils.kt index 3853a56e1cd..ae24ba78ec0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/firLightClassUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/firLightClassUtils.kt @@ -83,11 +83,13 @@ internal fun createFirLightClassNoCache(classOrObject: KtClassOrObject): KtLight classOrObject is KtEnumEntry -> analyzeForLightClasses(classOrObject) { lightClassForEnumEntry(classOrObject) } + classOrObject.hasModifier(INLINE_KEYWORD) -> { analyzeForLightClasses(classOrObject) { classOrObject.getNamedClassOrObjectSymbol()?.let { FirLightInlineClass(it, classOrObject.manager) } } } + else -> { analyzeForLightClasses(classOrObject) { classOrObject.getClassOrObjectSymbol().createLightClassNoCache(classOrObject.manager) @@ -98,7 +100,7 @@ internal fun createFirLightClassNoCache(classOrObject: KtClassOrObject): KtLight context(KtAnalysisSession) - internal fun KtClassOrObjectSymbol.createLightClassNoCache(manager: PsiManager): FirLightClassBase = when (this) { +internal fun KtClassOrObjectSymbol.createLightClassNoCache(manager: PsiManager): FirLightClassBase = when (this) { is KtAnonymousObjectSymbol -> FirLightAnonymousClassForSymbol(this, manager) is KtNamedClassOrObjectSymbol -> when (classKind) { KtClassKind.INTERFACE -> FirLightInterfaceClassSymbol(this, manager) @@ -108,7 +110,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - private fun lightClassForEnumEntry(ktEnumEntry: KtEnumEntry): KtLightClass? { +private fun lightClassForEnumEntry(ktEnumEntry: KtEnumEntry): KtLightClass? { if (ktEnumEntry.body == null) return null val firClass = ktEnumEntry @@ -124,7 +126,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun FirLightClassBase.createConstructors( +internal fun FirLightClassBase.createConstructors( declarations: Sequence, result: MutableList ) { @@ -153,7 +155,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - private fun FirLightClassBase.shouldGenerateNoArgOverload( +private fun FirLightClassBase.shouldGenerateNoArgOverload( primaryConstructor: KtConstructorSymbol, constructors: Iterable, ): Boolean { @@ -168,7 +170,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - private fun FirLightClassBase.defaultConstructor(): KtLightMethod { +private fun FirLightClassBase.defaultConstructor(): KtLightMethod { val classOrObject = kotlinOrigin val visibility = when { classOrObject is KtObjectDeclaration || classOrObject?.hasModifier(SEALED_KEYWORD) == true || isEnum -> PsiModifier.PRIVATE @@ -179,7 +181,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - private fun FirLightClassBase.noArgConstructor( +private fun FirLightClassBase.noArgConstructor( visibility: String, methodIndex: Int, ): KtLightMethod { @@ -196,7 +198,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun FirLightClassBase.createMethods( +internal fun FirLightClassBase.createMethods( declarations: Sequence, result: MutableList, isTopLevel: Boolean = false, @@ -241,12 +243,14 @@ context(KtAnalysisSession) } } } + is KtPropertySymbol -> createPropertyAccessors( result, declaration, isTopLevel = isTopLevel, suppressStatic = suppressStatic ) + is KtConstructorSymbol -> error("Constructors should be handled separately and not passed to this function") else -> {} } @@ -263,7 +267,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun FirLightClassBase.createPropertyAccessors( +internal fun FirLightClassBase.createPropertyAccessors( result: MutableList, declaration: KtPropertySymbol, isTopLevel: Boolean, @@ -342,7 +346,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun FirLightClassBase.createField( +internal fun FirLightClassBase.createField( declaration: KtPropertySymbol, nameGenerator: FirLightField.FieldNameGenerator, isTopLevel: Boolean, @@ -386,7 +390,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun FirLightClassBase.createInheritanceList(forExtendsList: Boolean, superTypes: List): PsiReferenceList { +internal fun FirLightClassBase.createInheritanceList(forExtendsList: Boolean, superTypes: List): PsiReferenceList { val role = if (forExtendsList) PsiReferenceList.Role.EXTENDS_LIST else PsiReferenceList.Role.IMPLEMENTS_LIST @@ -428,7 +432,7 @@ context(KtAnalysisSession) } context(KtAnalysisSession) - internal fun KtSymbolWithMembers.createInnerClasses( +internal fun KtSymbolWithMembers.createInnerClasses( manager: PsiManager, containingClass: FirLightClassBase, classOrObject: KtClassOrObject? diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementBase.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementBase.kt index 66d597c5f89..0f64b54bdb0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementBase.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementBase.kt @@ -14,7 +14,7 @@ internal abstract class FirLightPsiJavaCodeReferenceElementBase(private val ktEl override fun multiResolve(incompleteCode: Boolean): Array = emptyArray() - override fun processVariants(processor: PsiScopeProcessor) { } + override fun processVariants(processor: PsiScopeProcessor) {} override fun advancedResolve(incompleteCode: Boolean): JavaResolveResult = JavaResolveResult.EMPTY diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithNoReference.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithNoReference.kt index c81b1e71f2c..fc7b3a59c82 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithNoReference.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithNoReference.kt @@ -10,7 +10,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiReference import com.intellij.util.IncorrectOperationException -internal class FirLightPsiJavaCodeReferenceElementWithNoReference(private val ktElement: PsiElement): +internal class FirLightPsiJavaCodeReferenceElementWithNoReference(private val ktElement: PsiElement) : FirLightPsiJavaCodeReferenceElementBase(ktElement), PsiReference { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithReference.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithReference.kt index ae830910958..20cd877c8e2 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithReference.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/codeReferences/FirLightPsiJavaCodeReferenceElementWithReference.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.codeReferences import com.intellij.psi.PsiElement import com.intellij.psi.PsiReference -internal class FirLightPsiJavaCodeReferenceElementWithReference(private val ktElement: PsiElement, reference: PsiReference): +internal class FirLightPsiJavaCodeReferenceElementWithReference(private val ktElement: PsiElement, reference: PsiReference) : FirLightPsiJavaCodeReferenceElementBase(ktElement), PsiReference by reference { diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/FirLightFieldForPropertySymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/FirLightFieldForPropertySymbol.kt index 690a0d07b2a..30fbbd2e118 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/FirLightFieldForPropertySymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/FirLightFieldForPropertySymbol.kt @@ -47,6 +47,7 @@ internal class FirLightFieldForPropertySymbol( (kotlinOrigin as? KtProperty)?.delegateExpression?.let { it.getKtType()?.asPsiType(this@FirLightFieldForPropertySymbol, KtTypeMappingMode.RETURN_TYPE) } + else -> { propertySymbol.returnType.asPsiType(this@FirLightFieldForPropertySymbol, KtTypeMappingMode.RETURN_TYPE) } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt index adb090a8bf4..628c2bfcac0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/firLightUtils.kt @@ -92,6 +92,7 @@ internal fun KtSymbolWithModality.computeModalityForMethod( result.add(PsiModifier.STATIC) } } + context(KtAnalysisSession) internal fun PsiElement.tryGetEffectiveVisibility(symbol: KtCallableSymbol): Visibility? { if (symbol !is KtPropertySymbol && symbol !is KtFunctionSymbol) return null @@ -122,6 +123,7 @@ private fun Visibility.toPsiVisibility(isTopLevel: Boolean, forClass: Boolean): // Nested private class has PRIVATE visibility Visibilities.Private, Visibilities.PrivateToThis -> if (forClass && isTopLevel) PsiModifier.PACKAGE_LOCAL else PsiModifier.PRIVATE + Visibilities.Protected -> PsiModifier.PROTECTED else -> PsiModifier.PUBLIC } @@ -201,6 +203,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA FirPsiArrayInitializerMemberValue(sourcePsi, parent) { arrayLiteralParent -> values.mapNotNull { element -> element.toAnnotationMemberValue(arrayLiteralParent) } } + is KtAnnotationApplicationValue -> FirLightSimpleAnnotation( annotationValue.classId?.relativeClassName?.asString(), @@ -208,6 +211,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA annotationValue.arguments, annotationValue.psi ) + is KtConstantAnnotationValue -> { this.constantValue.createPsiLiteral(parent)?.let { when (it) { @@ -216,11 +220,13 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA } } } + is KtEnumEntryAnnotationValue -> { val fqName = this.callableId?.asSingleFqName()?.asString() ?: return null val psiExpression = PsiElementFactory.getInstance(parent.project).createExpressionFromText(fqName, parent) FirPsiExpression(sourcePsi, parent, psiExpression) } + KtUnsupportedAnnotationValue -> null is KtKClassAnnotationValue.KtErrorClassAnnotationValue -> null is KtKClassAnnotationValue.KtLocalKClassAnnotationValue -> null @@ -231,7 +237,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA private fun KtKClassAnnotationValue.KtNonLocalKClassAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiExpression? { val fqName = classId.asSingleFqName() val canonicalText = psiType( - fqName.asString(), parent, boxPrimitiveType = false /* TODO value.arrayNestedness > 0*/, + fqName.asString(), parent, boxPrimitiveType = false, /* TODO value.arrayNestedness > 0*/ ).let(TypeConversionUtil::erasure).getCanonicalText(false) return try { PsiElementFactory.getInstance(parent.project).createExpressionFromText("$canonicalText.class", parent) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightConstructorForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightConstructorForSymbol.kt index 818a85b9036..f5e73ec5365 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightConstructorForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightConstructorForSymbol.kt @@ -73,8 +73,8 @@ internal class FirLightConstructorForSymbol( override fun equals(other: Any?): Boolean = this === other || (other is FirLightConstructorForSymbol && - kotlinOrigin == other.kotlinOrigin && - constructorSymbol == other.constructorSymbol) + kotlinOrigin == other.kotlinOrigin && + constructorSymbol == other.constructorSymbol) override fun hashCode(): Int = kotlinOrigin.hashCode() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightNoArgConstructor.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightNoArgConstructor.kt index b7efe247243..50a3ab62f27 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightNoArgConstructor.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightNoArgConstructor.kt @@ -20,7 +20,7 @@ internal class FirLightNoArgConstructor( containingClass: FirLightClassBase, visibility: String, methodIndex: Int, -): FirLightMethod(lightMemberOrigin, containingClass, methodIndex) { +) : FirLightMethod(lightMemberOrigin, containingClass, methodIndex) { private val _name: String? = containingClass.name override fun getName(): String = _name ?: "" @@ -60,8 +60,8 @@ internal class FirLightNoArgConstructor( override fun equals(other: Any?): Boolean = this === other || (other is FirLightNoArgConstructor && - kotlinOrigin == other.kotlinOrigin && - containingClass == other.containingClass) + kotlinOrigin == other.kotlinOrigin && + containingClass == other.containingClass) override fun hashCode(): Int = containingClass.hashCode() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt index 7727b3859dc..fd9fc4ea485 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt @@ -70,8 +70,10 @@ internal class FirLightSimpleMethodForSymbol( when { functionSymbol.isSuspend -> // Any? return@l NullabilityType.Nullable + isVoidReturnType -> return@l NullabilityType.Unknown + else -> functionSymbol.returnType } @@ -145,8 +147,10 @@ internal class FirLightSimpleMethodForSymbol( val ktType = when { functionSymbol.isSuspend -> // Any? analysisSession.builtinTypes.NULLABLE_ANY + isVoidReturnType -> return@lazyPub PsiType.VOID + else -> functionSymbol.returnType } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterForReceiver.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterForReceiver.kt index b6e8c0a0b20..a6d7ea37197 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterForReceiver.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterForReceiver.kt @@ -33,7 +33,7 @@ internal class FirLightParameterForReceiver private constructor( ) : FirLightParameter(method) { companion object { - context (KtAnalysisSession) + context (KtAnalysisSession) fun tryGet( callableSymbol: KtCallableSymbol, method: FirLightMethod diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterList.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterList.kt index 10f2abe3df1..30b1afa1826 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterList.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightParameterList.kt @@ -8,16 +8,15 @@ package org.jetbrains.kotlin.light.classes.symbol.parameters import com.intellij.psi.PsiParameter import com.intellij.psi.PsiParameterList import com.intellij.psi.impl.light.LightParameterListBuilder +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.asJava.elements.KtLightElementBase +import org.jetbrains.kotlin.light.classes.symbol.methods.FirLightMethod import org.jetbrains.kotlin.psi.KtFunction import org.jetbrains.kotlin.psi.KtParameterList -import org.jetbrains.kotlin.analysis.api.KtAnalysisSession -import org.jetbrains.kotlin.light.classes.symbol.methods.FirLightMethod - context(KtAnalysisSession) internal class FirLightParameterList( private val parent: FirLightMethod, diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesAnnotationOwnerTest.kt b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesAnnotationOwnerTest.kt index 59df48f4cd1..b299edf2bd6 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesAnnotationOwnerTest.kt +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesAnnotationOwnerTest.kt @@ -107,9 +107,11 @@ abstract class AbstractSymbolLightClassesAnnotationOwnerTest( is PsiClass, is PsiParameter -> TestCase.assertTrue(owner is FirLightClassModifierList<*>) + is PsiField, is PsiMethod -> TestCase.assertTrue(owner is FirLightMemberModifierList<*>) + else -> throw IllegalStateException("Unexpected annotation owner kind: ${lastDeclaration::class.java}") }