diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt index 2f630df4daa..70551849905 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt @@ -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.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 = _typeParameterList?.typeParameters ?: PsiTypeParameter.EMPTY_ARRAY override fun isVarArgs(): Boolean = false diff --git a/compiler/testData/asJava/ultraLightClasses/generics.fir.java b/compiler/testData/asJava/ultraLightClasses/generics.fir.java index 8c27f677aaa..d806fddb1c6 100644 --- a/compiler/testData/asJava/ultraLightClasses/generics.fir.java +++ b/compiler/testData/asJava/ultraLightClasses/generics.fir.java @@ -52,9 +52,9 @@ public abstract class C /* C*/ { public C(@org.jetbrains.annotations.NotNull() java.util.List);// .ctor(java.util.List) - public final T foo(V, @org.jetbrains.annotations.NotNull() C, @org.jetbrains.annotations.NotNull() kotlin.sequences.Sequence);// foo(V, C, kotlin.sequences.Sequence) + public final Q getW(Q);// getW(Q) - public final Q getW(Q);// getW(Q) + public final T foo(V, @org.jetbrains.annotations.NotNull() C, @org.jetbrains.annotations.NotNull() kotlin.sequences.Sequence);// foo(V, C, kotlin.sequences.Sequence) public final void setConstructorParam(@org.jetbrains.annotations.NotNull() java.util.List);// setConstructorParam(java.util.List) @@ -78,4 +78,4 @@ public class K /* K*/> { public final class Sub /* Sub*/ extends K> { public Sub();// .ctor() -} \ No newline at end of file +}