KT-73796 [kotlin] drop redundant KaAnnotation#useSiteTarget usages

They were `null` in most cases. This API is going to be deprecated soon.
`AnnotationUseSiteTarget` is syntax-level concept.

GitOrigin-RevId: ad3c7aa136ef7a446abbaf064415348879611afd
This commit is contained in:
Dmitrii Gridin
2026-06-09 18:38:46 +00:00
committed by intellij-monorepo-bot
parent 25facb735b
commit 71f2147a5e
3 changed files with 10 additions and 34 deletions
@@ -1,4 +1,4 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea.k2.codeinsight.quickDoc
import com.google.common.html.HtmlEscapers
@@ -91,6 +91,7 @@ import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.psi.KtAnnotationEntry
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
import org.jetbrains.kotlin.psi.KtParameter
@@ -278,7 +279,7 @@ internal class KotlinIdeDeclarationRenderer(
}
) { annotation ->
append(highlight("@") { asAnnotationName })
(annotation.useSiteTarget?.renderName
((annotation.psi as? KtAnnotationEntry)?.useSiteTarget?.getAnnotationUseSiteTarget()?.renderName
?: "field".takeIf { backingFieldAnnotations != null && annotation in backingFieldAnnotations })?.let { useSiteName ->
printer.append(highlight(useSiteName) { asKeyword })
printer.append(highlight(":") { asColon })
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KaValueParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.name
import org.jetbrains.kotlin.analysis.api.types.KaErrorType
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.idea.base.analysis.api.utils.CallParameterInfoProvider
import org.jetbrains.kotlin.idea.base.analysis.api.utils.collectCallCandidates
import org.jetbrains.kotlin.idea.base.analysis.api.utils.defaultValue
@@ -321,11 +320,6 @@ abstract class KotlinHighLevelParameterInfoWithCallHandlerBase<TArgumentList : K
return buildString {
val annotationFqNames =
parameter.symbol.annotations
.filter {
// For primary constructor parameters, the annotation use site must be "param" or unspecified.
(it.useSiteTarget == null || it.useSiteTarget == AnnotationUseSiteTarget.CONSTRUCTOR_PARAMETER) &&
!it.isAnnotatedWithTypeUseOnly()
}
.mapNotNull { it.classId?.asSingleFqName() }
.filter { it !in NULLABILITY_ANNOTATIONS }
annotationFqNames.forEach { append("@${it.shortName().asString()} ") }
@@ -1,4 +1,4 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.uast.kotlin.internal
@@ -48,8 +48,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KaFunctionSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaNamedClassSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaNamedFunctionSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaPropertyGetterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaPropertySetterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolOrigin
import org.jetbrains.kotlin.analysis.api.symbols.KaTypeParameterSymbol
@@ -70,9 +68,6 @@ import org.jetbrains.kotlin.asJava.getAccessorLightMethods
import org.jetbrains.kotlin.asJava.getRepresentativeLightMethod
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.asJava.toLightElements
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.PROPERTY_GETTER
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.PROPERTY_SETTER
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.light.classes.symbol.annotations.annotateByKtType
import org.jetbrains.kotlin.name.ClassId
@@ -329,17 +324,7 @@ private fun toPsiMethodForDeserialized(
if (functionSymbol is KaConstructorSymbol)
constructors.filter { it.parameterList.parameters.size == functionSymbol.valueParameters.size }
else {
val jvmName = when (functionSymbol) {
is KaPropertyGetterSymbol -> {
functionSymbol.getJvmNameFromAnnotation(allowedUseSiteTargets = setOf(PROPERTY_GETTER, null))
}
is KaPropertySetterSymbol -> {
functionSymbol.getJvmNameFromAnnotation(allowedUseSiteTargets = setOf(PROPERTY_SETTER, null))
}
else -> {
functionSymbol.getJvmNameFromAnnotation()
}
}
val jvmName = functionSymbol.getJvmNameFromAnnotation()
val id = jvmName
?: functionSymbol.callableId?.callableName?.identifierOrNullIfSpecial
?: psi?.name
@@ -406,18 +391,14 @@ private fun KaCallInfo?.typeArgumentsMappingOrEmptyMap(): Map<KaSymbolPointer<Ka
/**
* Returns a `JvmName` annotation value.
*
* @param allowedUseSiteTargets If non-empty, only annotations with the specified use-site targets are checked.
*/
private fun KaAnnotatedSymbol.getJvmNameFromAnnotation(allowedUseSiteTargets: Set<AnnotationUseSiteTarget?> = emptySet()): String? {
private fun KaAnnotatedSymbol.getJvmNameFromAnnotation(): String? {
for (annotation in annotations[JvmStandardClassIds.JVM_NAME_CLASS_ID]) {
if (allowedUseSiteTargets.isEmpty() || annotation.useSiteTarget in allowedUseSiteTargets) {
val firstArgumentExpression = annotation.arguments.firstOrNull()?.expression
if (firstArgumentExpression is KaAnnotationValue.ConstantValue) {
return firstArgumentExpression.value.value as? String
}
break
val firstArgumentExpression = annotation.arguments.firstOrNull()?.expression
if (firstArgumentExpression is KaAnnotationValue.ConstantValue) {
return firstArgumentExpression.value.value as? String
}
break
}
return null