Rework class objects
Class objects have name "Default" by default
Do not produce synthetic class objects
Class objects have new semantics:
class "A" has class object "B" if literal "A" can be used as a value of type "B"
Class objects act like ordinary nested objects
i.e. are accessible from class scope via getClassifier()
Jvm backend: class object fields and class have the name of class object ("Default")
as opposed to special "OBJECT$" and "object"
Serialization: only the name of class object is needed to serialize data
This commit is contained in:
@@ -201,11 +201,6 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
|
||||
writeClass(classDescriptor, classProto)
|
||||
|
||||
serializeClasses(classDescriptor.getUnsubstitutedInnerClassesScope().getDescriptors(), serializer, writeClass)
|
||||
|
||||
val classObjectDescriptor = classDescriptor.getClassObjectDescriptor()
|
||||
if (classObjectDescriptor != null) {
|
||||
serializeClass(classObjectDescriptor, serializer, writeClass)
|
||||
}
|
||||
}
|
||||
|
||||
private fun serializeClasses(
|
||||
|
||||
Reference in New Issue
Block a user