FIR LC: remove unnecessary type parameter shift for inner class
U/LC don't do anything like that, and it rather skips necessary type
paraemters to render.
diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightTypeParameterListForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightTypeParameterListForSymbol.kt
index c33aa1b..8fe5eb0 100644
--- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightTypeParameterListForSymbol.kt
+++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/FirLightTypeParameterListForSymbol.kt
@@ -13,11 +13,9 @@
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithTypeParameters
import org.jetbrains.kotlin.light.classes.symbol.elements.FirLightTypeParameter
-
internal class FirLightTypeParameterListForSymbol(
internal val owner: PsiTypeParameterListOwner,
private val symbolWithTypeParameterList: KtSymbolWithTypeParameters,
- private val innerShiftCount: Int
) : LightElement(owner.manager, KotlinLanguage.INSTANCE), PsiTypeParameterList {
override fun accept(visitor: PsiElementVisitor) {
@@ -38,16 +36,13 @@
}
private val _typeParameters: Array<PsiTypeParameter> by lazyPub {
- symbolWithTypeParameterList.typeParameters.let { list ->
- list.take(list.count() - innerShiftCount).mapIndexed { index, parameter ->
- FirLightTypeParameter(
- parent = this@FirLightTypeParameterListForSymbol,
- index = index,
- typeParameterSymbol = parameter
- )
- }.toTypedArray()
-
- }
+ symbolWithTypeParameterList.typeParameters.mapIndexed { index, parameter ->
+ FirLightTypeParameter(
+ parent = this@FirLightTypeParameterListForSymbol,
+ index = index,
+ typeParameterSymbol = parameter
+ )
+ }.toTypedArray()
}
override fun getTypeParameters(): Array<PsiTypeParameter> = _typeParameters
diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt
index c7fa888..f27391d 100644
--- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt
+++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/FirLightClassForClassOrObjectSymbol.kt
@@ -12,14 +12,11 @@
import com.intellij.psi.stubs.IStubElementType
import com.intellij.psi.stubs.StubElement
import org.jetbrains.annotations.NonNls
-import org.jetbrains.kotlin.asJava.classes.KtLightClass
-import org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
import org.jetbrains.kotlin.asJava.classes.lazyPub
import org.jetbrains.kotlin.asJava.elements.KtLightField
import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
-import org.jetbrains.kotlin.light.classes.symbol.classes.checkIsInheritor
import org.jetbrains.kotlin.light.classes.symbol.classes.createInnerClasses
import org.jetbrains.kotlin.light.classes.symbol.classes.getOrCreateFirLightClass
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
@@ -59,14 +56,9 @@
private val _typeParameterList: PsiTypeParameterList? by lazyPub {
hasTypeParameters().ifTrue {
- val shiftCount = classOrObjectSymbol.isInner.ifTrue {
- (parent as? FirLightClassForClassOrObjectSymbol)?.classOrObjectSymbol?.typeParameters?.count()
- } ?: 0
-
FirLightTypeParameterListForSymbol(
owner = this,
symbolWithTypeParameterList = classOrObjectSymbol,
- innerShiftCount = shiftCount
)
}
}
diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt
index a2f5a45..3ac2eda 100644
--- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt
+++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightSimpleMethodForSymbol.kt
@@ -44,7 +44,6 @@
FirLightTypeParameterListForSymbol(
owner = this,
symbolWithTypeParameterList = functionSymbol,
- innerShiftCount = 0
)
}
}
diff --git a/compiler/testData/asJava/lightClasses/TypePararametersInClass.fir.java b/compiler/testData/asJava/lightClasses/TypePararametersInClass.fir.java
deleted file mode 100644
index 724634d..0000000
--- a/compiler/testData/asJava/lightClasses/TypePararametersInClass.fir.java
+++ /dev/null
@@ -1,12 +0,0 @@
-public abstract class A /* A*/<T extends A<T>> extends B<java.util.Collection<? extends T>> implements C<T> {
- public A();// .ctor()
-
-
-
-public class Inner /* A.Inner*/ extends B<java.util.Collection<? extends T>> implements C<D> {
- public Inner();// .ctor()
-
-}public final class Inner2 /* A.Inner2*/ extends A.Inner<X> implements C<X> {
- public Inner2();// .ctor()
-
-}}