Refactor: AnnotationSerializer does not depend on bultins

This commit is contained in:
Pavel V. Talanov
2015-07-17 15:35:03 +03:00
parent 251ebc7ca8
commit aae8ccfd57
8 changed files with 28 additions and 29 deletions
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.serialization
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationArgumentVisitor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
@@ -26,7 +25,7 @@ import org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value.Typ
import org.jetbrains.kotlin.types.ErrorUtils
import org.jetbrains.kotlin.types.JetType
public class AnnotationSerializer(builtIns: KotlinBuiltIns) {
public class AnnotationSerializer() {
public fun serializeAnnotation(annotation: AnnotationDescriptor, stringTable: StringTable): ProtoBuf.Annotation {
return with(ProtoBuf.Annotation.newBuilder()) {
@@ -59,7 +58,7 @@ public class AnnotationSerializer(builtIns: KotlinBuiltIns) {
override fun visitArrayValue(value: ArrayValue, data: Unit) {
setType(Type.ARRAY)
for (element in value.value) {
addArrayElement(valueProto(element, KotlinBuiltIns.getInstance().getArrayElementType(type), nameTable).build())
addArrayElement(valueProto(element, value.elementType, nameTable).build())
}
}
@@ -16,20 +16,14 @@
package org.jetbrains.kotlin.serialization.builtins
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.resolve.constants.NullValue
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.serialization.AnnotationSerializer
import org.jetbrains.kotlin.serialization.DescriptorSerializer
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.SerializerExtension
import org.jetbrains.kotlin.serialization.StringTable
import org.jetbrains.kotlin.serialization.*
public class BuiltInsSerializerExtension(module: ModuleDescriptor) : SerializerExtension() {
public class BuiltInsSerializerExtension() : SerializerExtension() {
private val annotationSerializer = AnnotationSerializer(module.builtIns)
private val annotationSerializer = AnnotationSerializer()
override fun serializeClass(descriptor: ClassDescriptor, proto: ProtoBuf.Class.Builder, stringTable: StringTable) {
for (annotation in descriptor.getAnnotations()) {