Store outer class in ProtoContainer instead of only its kind

This commit is contained in:
Alexander Udalov
2016-04-06 18:01:56 +03:00
parent 8ee278d02f
commit 1f3850da6e
5 changed files with 28 additions and 25 deletions
@@ -215,10 +215,12 @@ abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C : Any,
return kotlinClassFinder.findKotlinClass(implClassName)
}
if (field && container.kind == ProtoBuf.Class.Kind.COMPANION_OBJECT &&
(container.outerClassKind == ClassKind.CLASS || container.outerClassKind == ClassKind.ENUM_CLASS)) {
// Backing fields of properties of a companion object in a class are generated in the outer class
return kotlinClassFinder.findKotlinClass(container.classId.outerClassId)
if (field && container.kind == ProtoBuf.Class.Kind.COMPANION_OBJECT) {
val outerClass = container.outerClass
if (outerClass != null && (outerClass.kind == ProtoBuf.Class.Kind.CLASS || outerClass.kind == ProtoBuf.Class.Kind.ENUM_CLASS)) {
// Backing fields of properties of a companion object in a class are generated in the outer class
return outerClass.toBinaryClass()
}
}
return containerBinaryClass