Support primitive array annotation arguments in ConstantValueFactory

This has no visible consequences at the moment, but will help once we
need to load such argument from some annotation in the compiler in the
future
This commit is contained in:
Alexander Udalov
2017-06-22 18:55:55 +03:00
parent b67542533b
commit e42b151561
8 changed files with 91 additions and 6 deletions
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.AnnotationDeserializer
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.utils.compactIfPossible
import java.util.*
class BinaryClassAnnotationAndConstantLoaderImpl(
@@ -115,8 +116,7 @@ class BinaryClassAnnotationAndConstantLoaderImpl(
override fun visitEnd() {
val parameter = DescriptorResolverUtils.getAnnotationParameterByName(name, annotationClass)
if (parameter != null) {
elements.trimToSize()
arguments[parameter] = factory.createArrayValue(elements, parameter.type)
arguments[parameter] = factory.createArrayValue(elements.compactIfPossible(), parameter.type)
}
}
}