[Analysis API] Fix function parameter name retrieval in `KaFe10FunctionType.parameters`
The previous implementation contained a bug, which allowed non-parameter-name annotations on parameter types to affect the resulting parameter name.
^KT-71876
diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/types/KaFe10FunctionType.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/types/KaFe10FunctionType.kt
index 053aca7..b317763 100644
--- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/types/KaFe10FunctionType.kt
+++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/types/KaFe10FunctionType.kt
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.api.descriptors.types
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
-import org.jetbrains.kotlin.analysis.api.annotations.KaAnnotationValue
import org.jetbrains.kotlin.analysis.api.base.KaContextReceiver
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.KaFe10DescNamedClassSymbol
@@ -27,7 +26,6 @@
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
import org.jetbrains.kotlin.builtins.functions.isSuspendOrKSuspendFunction
import org.jetbrains.kotlin.name.ClassId
-import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.SimpleType
import org.jetbrains.kotlin.types.getAbbreviation
@@ -100,13 +98,7 @@
override val parameters: List<KaFunctionValueParameter>
get() = withValidityAssertion {
parameterTypes.map { type ->
- val name = type.annotations.firstNotNullOfOrNull { annotation ->
- (annotation.arguments.firstOrNull { it.name == StandardNames.NAME }?.expression as? KaAnnotationValue.ConstantValue)
- ?.value?.value as? String
- }?.let {
- Name.identifier(it)
- }
-
+ val name = (type as KaFe10Type).fe10Type.extractParameterNameFromFunctionTypeArgument()
KaBaseFunctionValueParameter(name, type)
}
}
diff --git a/analysis/analysis-api/testData/types/byDeclarationReturnType/functionWithAnnotationOnParameterType.descriptors.txt b/analysis/analysis-api/testData/types/byDeclarationReturnType/functionWithAnnotationOnParameterType.descriptors.txt
index 87ceb82..b59e8ce 100644
--- a/analysis/analysis-api/testData/types/byDeclarationReturnType/functionWithAnnotationOnParameterType.descriptors.txt
+++ b/analysis/analysis-api/testData/types/byDeclarationReturnType/functionWithAnnotationOnParameterType.descriptors.txt
@@ -31,7 +31,7 @@
typeArguments: []
]
parameters: [
- KaBaseFunctionValueParameter [name: myFakeName, type: kotlin/Int]
+ KaBaseFunctionValueParameter [name: x, type: kotlin/Int]
]
qualifiers: [
KaResolvedClassTypeQualifier: