Serialize/deserialize annotations on enum entries

#KT-10338 Fixed
This commit is contained in:
Alexander Udalov
2015-12-10 15:26:00 +03:00
parent 5e421b4024
commit 3e2eb8c1a0
29 changed files with 1845 additions and 260 deletions
@@ -35,7 +35,7 @@ public final class JvmAbi {
* - Patch version can be increased freely and is only supposed to be used for debugging. Increase the patch version when you
* make a change to the metadata format or the bytecode which is both forward- and backward compatible.
*/
public static final BinaryVersion VERSION = BinaryVersion.create(1, 0, 0);
public static final BinaryVersion VERSION = BinaryVersion.create(1, 0, 1);
public static final String DEFAULT_IMPLS_CLASS_NAME = "DefaultImpls";
public static final String DEFAULT_IMPLS_SUFFIX = "$" + DEFAULT_IMPLS_CLASS_NAME;
@@ -26,10 +26,7 @@ import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.*
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.index
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.methodImplClassName
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.propertyImplClassName
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.propertySignature
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.*
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.types.KotlinType
@@ -112,6 +109,14 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C
return transformAnnotations(findClassAndLoadMemberAnnotations(container, proto, signature))
}
override fun loadEnumEntryAnnotations(
container: ProtoContainer,
proto: ProtoBuf.EnumEntry
): List<A> {
// TODO
return listOf()
}
protected abstract fun loadPropertyAnnotations(propertyAnnotations: List<A>, fieldAnnotations: List<A>): List<T>
protected abstract fun transformAnnotations(annotations: List<A>): List<T>