diff --git a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/helpers/CallableMetadataProvider.kt b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/helpers/CallableMetadataProvider.kt index f4aca218b6c6..9150f954300d 100644 --- a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/helpers/CallableMetadataProvider.kt +++ b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/helpers/CallableMetadataProvider.kt @@ -261,13 +261,11 @@ internal object CallableMetadataProvider { context(KaSession) @OptIn(KaExperimentalApi::class) private fun buildClassType(symbol: KaClassLikeSymbol): KaType = buildClassType(symbol) { - val containingSymbol = if (symbol is KaNamedClassSymbol && symbol.isInner) - symbol.containingDeclaration as? KaClassSymbol - else - null + val times = when (val defaultType = symbol.defaultType) { + is KaClassType -> defaultType.qualifiers.sumOf { it.typeArguments.size } + else -> 0 + } - val times = (containingSymbol?.typeParameters?.size ?: 0) + - symbol.typeParameters.size @OptIn(KaExperimentalApi::class) repeat(times) { argument(buildStarTypeProjection()) diff --git a/plugins/kotlin/completion/testData/basic/common/InnerClassWithParameters.kt b/plugins/kotlin/completion/testData/basic/common/InnerClassWithParameters.kt index 8db45e9c0c82..4ec5ca7cd7ca 100644 --- a/plugins/kotlin/completion/testData/basic/common/InnerClassWithParameters.kt +++ b/plugins/kotlin/completion/testData/basic/common/InnerClassWithParameters.kt @@ -1,9 +1,12 @@ class Foo { - inner class Bar(private val foo: T) { + inner class Bar { - init { - fo + inner class Baz(private val foo: T) { + + init { + fo + } } } }