diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/ArgumentNameHints.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/ArgumentNameHints.kt index 5e172d6c604..74bc66a3662 100644 --- a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/ArgumentNameHints.kt +++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/ArgumentNameHints.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode -fun provideArgumentNameHints(element: KtCallExpression): List { +fun provideArgumentNameHints(element: KtCallElement): List { if (element.valueArguments.none { it.getArgumentExpression()?.isUnclearExpression() == true }) return emptyList() val ctx = element.analyze(BodyResolveMode.PARTIAL) val call = element.getCall(ctx) ?: return emptyList() diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsProvider.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsProvider.kt index 7c912332565..86cef3c8a0c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinInlayParameterHintsProvider.kt @@ -82,13 +82,13 @@ enum class HintType(desc: String, enabled: Boolean) { }, PARAMETER_HINT("Show argument name hints", true) { override fun provideHints(elem: PsiElement): List { - (elem as? KtCallExpression)?.let { + (elem as? KtCallElement)?.let { return provideArgumentNameHints(it) } return emptyList() } - override fun isApplicable(elem: PsiElement): Boolean = elem is KtCallExpression + override fun isApplicable(elem: PsiElement): Boolean = elem is KtCallElement }; companion object { @@ -122,7 +122,7 @@ class KotlinInlayParameterHintsProvider : InlayParameterHintsProvider { override fun getHintInfo(element: PsiElement): HintInfo? { val hintType = HintType.resolve(element) ?: return null return when (hintType) { - HintType.PARAMETER_HINT -> (element as? KtCallExpression)?.let { getMethodInfo(it) } + HintType.PARAMETER_HINT -> (element as? KtCallElement)?.let { getMethodInfo(it) } else -> HintInfo.OptionInfo(hintType.option) } } @@ -138,7 +138,7 @@ class KotlinInlayParameterHintsProvider : InlayParameterHintsProvider { super.getInlayPresentation(inlayText) } - private fun getMethodInfo(elem: KtCallExpression): HintInfo.MethodInfo? { + private fun getMethodInfo(elem: KtCallElement): HintInfo.MethodInfo? { val ctx = elem.analyze(BodyResolveMode.PARTIAL) val resolvedCall = elem.getResolvedCall(ctx) val resolvedCallee = resolvedCall?.candidateDescriptor diff --git a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/InlayParameterHintsTest.kt b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/InlayParameterHintsTest.kt index baec98fca2e..36d2c9a6565 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/InlayParameterHintsTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/InlayParameterHintsTest.kt @@ -151,6 +151,13 @@ class X { class X { operator fun invoke(a: Int, bI: Int) {} } +""") + } + + fun `test annotation`() { + check(""" +annotation class ManyArgs(val name: String, val surname: String) +@ManyArgs("Ilya", "Sergey") class AnnotatedMuch """) } }