diff --git a/compiler/testData/asJava/ultraLightClasses/importAliases.kt b/compiler/testData/asJava/ultraLightClasses/importAliases.kt index 1716fc9a228..d57a56dfc49 100644 --- a/compiler/testData/asJava/ultraLightClasses/importAliases.kt +++ b/compiler/testData/asJava/ultraLightClasses/importAliases.kt @@ -1,6 +1,5 @@ import kotlin.jvm.JvmStatic as JS -/** should load cls */ object O { @JS fun foo() {} } diff --git a/compiler/testData/asJava/ultraLightClasses/typeAliases.kt b/compiler/testData/asJava/ultraLightClasses/typeAliases.kt index 22660b288a9..e4ce877d6de 100644 --- a/compiler/testData/asJava/ultraLightClasses/typeAliases.kt +++ b/compiler/testData/asJava/ultraLightClasses/typeAliases.kt @@ -1,6 +1,5 @@ typealias JO = JvmOverloads -/** should load cls */ object O { @JO fun foo(a: Int = 1, b: String = "") {} } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt index 2a88d0367d7..5f49cb6d55b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt @@ -92,7 +92,9 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG } override fun findAnnotation(owner: KtAnnotated, fqName: FqName): Pair? { - val candidates = owner.annotationEntries.filter { it.shortName == fqName.shortName() || hasAlias(owner, fqName.shortName()) } + val candidates = owner.annotationEntries.filter { + it.shortName == fqName.shortName() || owner.containingKtFile.hasAlias(it.shortName) + } for (entry in candidates) { val descriptor = analyze(entry).get(BindingContext.ANNOTATION, entry) if (descriptor?.fqName == fqName) { @@ -152,7 +154,10 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG } == true } - private fun hasAlias(element: KtElement, shortName: Name): Boolean = allAliases(element.containingKtFile)[shortName.asString()] == true + private fun KtFile.hasAlias(shortName: Name?): Boolean { + if (shortName == null) return false + return allAliases(this)[shortName.asString()] == true + } private fun allAliases(file: KtFile): ConcurrentMap = CachedValuesManager.getCachedValue(file) { val importAliases = file.importDirectives.mapNotNull { it.aliasName }.toSet()