[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.modifierLists.SymbolLightMemberModifierList
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList 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.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.getterName
import org.jetbrains.kotlin.load.java.JvmAbi.setterName import org.jetbrains.kotlin.load.java.JvmAbi.setterName
import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtDeclaration
@@ -62,9 +63,18 @@ internal class SymbolLightAccessorMethod(
override fun getName(): String = _name override fun getName(): String = _name
override fun hasTypeParameters(): Boolean = false private val _typeParameterList: PsiTypeParameterList? by lazyPub {
override fun getTypeParameterList(): PsiTypeParameterList? = null hasTypeParameters().ifTrue {
override fun getTypeParameters(): Array<PsiTypeParameter> = PsiTypeParameter.EMPTY_ARRAY 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 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 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>) public final void setConstructorParam(@org.jetbrains.annotations.NotNull() java.util.List<? extends java.lang.CharSequence>);// setConstructorParam(java.util.List<? extends java.lang.CharSequence>)