5d76e463d3
The problem was that in JvmSerializerExtension.writeLocalProperties, we only serialized metadata for local properties, but indices generated in MemberCodegen.generatePropertyMetadataArrayFieldIfNeeded were among all delegated properties in the class (not only local). This behaved incorrectly as long as there was a local and a non-local delegated property in the same class. For example, if there were 5 non-local properties and then one local, that local property would get the index 5 and the synthetic signature "<v#5>". But there would only be one Property entry in the metadata, and so reflection would fail here trying to load the 5th element of the list which contains only one element. Now, the index for a local delegated property is computed only as the number of _local_ delegated properties above it in the class, i.e. the first local delegated property gets index 0 (and synthetic signature "<v#0>"), the next one -- index 1, and so on. #KT-23413 Fixed