Make AnnotationsImpl internal, introduce Annotations.create
This commit is contained in:
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.builtins.jvm
|
||||
import org.jetbrains.kotlin.builtins.BuiltInsInitializer
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationsImpl
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.descriptors.annotations.createDeprecatedAnnotation
|
||||
import org.jetbrains.kotlin.descriptors.deserialization.AdditionalClassPartsProvider
|
||||
import org.jetbrains.kotlin.descriptors.deserialization.PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME
|
||||
@@ -64,9 +64,10 @@ open class JvmBuiltInsSettings(
|
||||
|
||||
// Most this properties are lazy because they depends on KotlinBuiltIns initialization that depends on JvmBuiltInsSettings object
|
||||
private val notConsideredDeprecation by storageManager.createLazyValue {
|
||||
moduleDescriptor.builtIns.createDeprecatedAnnotation(
|
||||
val annotation = moduleDescriptor.builtIns.createDeprecatedAnnotation(
|
||||
"This member is not fully supported by Kotlin compiler, so it may be absent or have different signature in next major version"
|
||||
).let { AnnotationsImpl(listOf(it)) }
|
||||
)
|
||||
Annotations.create(listOf(annotation))
|
||||
}
|
||||
|
||||
private fun StorageManager.createMockJavaIoSerializableType(): KotlinType {
|
||||
|
||||
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationsImpl
|
||||
import org.jetbrains.kotlin.descriptors.annotations.BuiltInAnnotationDescriptor
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||
@@ -165,7 +164,7 @@ fun getFunctionTypeArgumentProjections(
|
||||
KotlinBuiltIns.FQ_NAMES.parameterName,
|
||||
mapOf(Name.identifier("name") to StringValue(name.asString()))
|
||||
)
|
||||
type.replaceAnnotations(AnnotationsImpl(type.annotations + parameterNameAnnotation))
|
||||
type.replaceAnnotations(Annotations.create(type.annotations + parameterNameAnnotation))
|
||||
}
|
||||
else {
|
||||
type
|
||||
@@ -199,8 +198,9 @@ fun createFunctionType(
|
||||
annotations
|
||||
}
|
||||
else {
|
||||
AnnotationsImpl(annotations +
|
||||
BuiltInAnnotationDescriptor(builtIns, KotlinBuiltIns.FQ_NAMES.extensionFunctionType, emptyMap()))
|
||||
Annotations.create(
|
||||
annotations + BuiltInAnnotationDescriptor(builtIns, KotlinBuiltIns.FQ_NAMES.extensionFunctionType, emptyMap())
|
||||
)
|
||||
}
|
||||
|
||||
return KotlinTypeFactory.simpleNotNullType(typeAnnotations, classDescriptor, arguments)
|
||||
|
||||
@@ -41,6 +41,9 @@ interface Annotations : Iterable<AnnotationDescriptor> {
|
||||
|
||||
override fun toString() = "EMPTY"
|
||||
}
|
||||
|
||||
fun create(annotations: List<AnnotationDescriptor>): Annotations =
|
||||
if (annotations.isEmpty()) EMPTY else AnnotationsImpl(annotations)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -16,7 +16,10 @@
|
||||
|
||||
package org.jetbrains.kotlin.descriptors.annotations
|
||||
|
||||
class AnnotationsImpl(private val annotations: List<AnnotationDescriptor>) : Annotations {
|
||||
/**
|
||||
* Use [Annotations.create] to create an instance of this class if necessary.
|
||||
*/
|
||||
internal class AnnotationsImpl(private val annotations: List<AnnotationDescriptor>) : Annotations {
|
||||
override fun isEmpty(): Boolean = annotations.isEmpty()
|
||||
|
||||
override fun iterator(): Iterator<AnnotationDescriptor> = annotations.iterator()
|
||||
|
||||
+3
-2
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.serialization.deserialization
|
||||
import org.jetbrains.kotlin.builtins.isSuspendFunctionType
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationsImpl
|
||||
import org.jetbrains.kotlin.descriptors.impl.FieldDescriptorImpl
|
||||
import org.jetbrains.kotlin.descriptors.impl.PropertyGetterDescriptorImpl
|
||||
import org.jetbrains.kotlin.descriptors.impl.PropertySetterDescriptorImpl
|
||||
@@ -291,7 +290,9 @@ class MemberDeserializer(private val c: DeserializationContext) {
|
||||
}
|
||||
|
||||
fun loadTypeAlias(proto: ProtoBuf.TypeAlias): TypeAliasDescriptor {
|
||||
val annotations = AnnotationsImpl(proto.annotationList.map { annotationDeserializer.deserializeAnnotation(it, c.nameResolver) })
|
||||
val annotations = Annotations.create(
|
||||
proto.annotationList.map { annotationDeserializer.deserializeAnnotation(it, c.nameResolver) }
|
||||
)
|
||||
|
||||
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(proto.flags))
|
||||
val typeAlias = DeserializedTypeAliasDescriptor(
|
||||
|
||||
Reference in New Issue
Block a user