Support annotations on class type parameters
#KT-43714
This commit is contained in:
+4
-3
@@ -36,13 +36,14 @@ class LazyJavaTypeParameterDescriptor(
|
||||
) : AbstractLazyTypeParameterDescriptor(
|
||||
c.storageManager,
|
||||
containingDeclaration,
|
||||
LazyJavaAnnotations(c, javaTypeParameter),
|
||||
javaTypeParameter.name,
|
||||
Variance.INVARIANT,
|
||||
/* isReified = */ false,
|
||||
/* isReified = */
|
||||
false,
|
||||
index,
|
||||
SourceElement.NO_SOURCE, c.components.supertypeLoopChecker
|
||||
SourceElement.NO_SOURCE, c.components.supertypeLoopChecker,
|
||||
) {
|
||||
override val annotations = LazyJavaAnnotations(c, javaTypeParameter)
|
||||
|
||||
override fun resolveUpperBounds(): List<KotlinType> {
|
||||
return computeNotEnhancedBounds()
|
||||
|
||||
+2
-1
@@ -29,6 +29,7 @@ public abstract class AbstractLazyTypeParameterDescriptor extends AbstractTypePa
|
||||
public AbstractLazyTypeParameterDescriptor(
|
||||
@NotNull StorageManager storageManager,
|
||||
@NotNull DeclarationDescriptor containingDeclaration,
|
||||
@NotNull Annotations annotations,
|
||||
@NotNull Name name,
|
||||
@NotNull Variance variance,
|
||||
boolean isReified,
|
||||
@@ -36,7 +37,7 @@ public abstract class AbstractLazyTypeParameterDescriptor extends AbstractTypePa
|
||||
@NotNull SourceElement source,
|
||||
@NotNull SupertypeLoopChecker supertypeLoopChecker
|
||||
) {
|
||||
super(storageManager, containingDeclaration, Annotations.Companion.getEMPTY() /* TODO */, name, variance, isReified, index, source,
|
||||
super(storageManager, containingDeclaration, annotations, name, variance, isReified, index, source,
|
||||
supertypeLoopChecker);
|
||||
}
|
||||
|
||||
|
||||
+6
-2
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.serialization.deserialization.descriptors
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.descriptors.SupertypeLoopChecker
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.descriptors.impl.AbstractLazyTypeParameterDescriptor
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.upperBounds
|
||||
@@ -32,8 +33,11 @@ class DeserializedTypeParameterDescriptor(
|
||||
val proto: ProtoBuf.TypeParameter,
|
||||
index: Int
|
||||
) : AbstractLazyTypeParameterDescriptor(
|
||||
c.storageManager, c.containingDeclaration, c.nameResolver.getName(proto.name),
|
||||
ProtoEnumFlags.variance(proto.variance), proto.reified, index, SourceElement.NO_SOURCE, SupertypeLoopChecker.EMPTY
|
||||
c.storageManager, c.containingDeclaration,
|
||||
/*TODO: support deserialized type annotations: now they are unused, even not accessible via reflection (KT-46932)*/
|
||||
Annotations.EMPTY,
|
||||
c.nameResolver.getName(proto.name),
|
||||
ProtoEnumFlags.variance(proto.variance), proto.reified, index, SourceElement.NO_SOURCE, SupertypeLoopChecker.EMPTY,
|
||||
) {
|
||||
override val annotations = DeserializedAnnotations(c.storageManager) {
|
||||
c.components.annotationAndConstantLoader.loadTypeParameterAnnotations(proto, c.nameResolver).toList()
|
||||
|
||||
Reference in New Issue
Block a user