[AA LC] Fix type parameters for getters of generic extension properties

This commit is contained in:
Dmitriy Novozhilov
2022-08-10 13:51:39 +03:00
parent 3b87a9f354
commit a3884e35e2
2 changed files with 16 additions and 6 deletions
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightSetterParameter
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightTypeParameterList
import org.jetbrains.kotlin.load.java.JvmAbi.getterName
import org.jetbrains.kotlin.load.java.JvmAbi.setterName
import org.jetbrains.kotlin.psi.KtDeclaration
@@ -62,9 +63,18 @@ internal class SymbolLightAccessorMethod(
override fun getName(): String = _name
override fun hasTypeParameters(): Boolean = false
override fun getTypeParameterList(): PsiTypeParameterList? = null
override fun getTypeParameters(): Array<PsiTypeParameter> = PsiTypeParameter.EMPTY_ARRAY
private val _typeParameterList: PsiTypeParameterList? by lazyPub {
hasTypeParameters().ifTrue {
SymbolLightTypeParameterList(
owner = this,
symbolWithTypeParameterList = containingPropertySymbol,
)
}
}
override fun hasTypeParameters(): Boolean = containingPropertySymbol.typeParameters.isNotEmpty()
override fun getTypeParameterList(): PsiTypeParameterList? = _typeParameterList
override fun getTypeParameters(): Array<PsiTypeParameter> = _typeParameterList?.typeParameters ?: PsiTypeParameter.EMPTY_ARRAY
override fun isVarArgs(): Boolean = false
@@ -52,9 +52,9 @@ public abstract class C /* C*/<T> {
public C(@org.jetbrains.annotations.NotNull() java.util.List<? extends java.lang.CharSequence>);// .ctor(java.util.List<? extends java.lang.CharSequence>)
public final <V, U extends V> T foo(V, @org.jetbrains.annotations.NotNull() C<V>, @org.jetbrains.annotations.NotNull() kotlin.sequences.Sequence<? extends V>);// <V, U extends V> foo(V, C<V>, kotlin.sequences.Sequence<? extends V>)
public final <Q extends T> Q getW(Q);// <Q extends T> getW(Q)
public final Q getW(Q);// getW(Q)
public final <V, U extends V> T foo(V, @org.jetbrains.annotations.NotNull() C<V>, @org.jetbrains.annotations.NotNull() kotlin.sequences.Sequence<? extends V>);// <V, U extends V> foo(V, C<V>, kotlin.sequences.Sequence<? extends V>)
public final void setConstructorParam(@org.jetbrains.annotations.NotNull() java.util.List<? extends java.lang.CharSequence>);// setConstructorParam(java.util.List<? extends java.lang.CharSequence>)
@@ -78,4 +78,4 @@ public class K /* K*/<T extends K<T>> {
public final class Sub /* Sub*/ extends K<K<?>> {
public Sub();// .ctor()
}
}