mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
committed by
intellij-monorepo-bot
parent
25facb735b
commit
71f2147a5e
+3
-2
@@ -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 })
|
||||
|
||||
-6
@@ -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()} ") }
|
||||
|
||||
+7
-26
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user