mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
[kotlin] KTIJ-33966 multiple inner classes case supported
(cherry picked from commit 604e8d6330da7de1639e34ffcdbd82adfd4d0190) IJ-CR-168804 GitOrigin-RevId: 4560d04dc66e8ce5cc285e337837b8336d7ab923
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c87323b58e
commit
1aac63743a
@@ -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())
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
class Foo<T> {
|
||||
|
||||
inner class Bar<U, V>(private val foo: T) {
|
||||
inner class Bar<U> {
|
||||
|
||||
init {
|
||||
fo<caret>
|
||||
inner class Baz<V>(private val foo: T) {
|
||||
|
||||
init {
|
||||
fo<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user