backend.native: add only overridable methods to vtable and lookup table

This commit is contained in:
Svyatoslav Scherbina
2016-10-04 13:55:39 +03:00
parent 3324527984
commit df6b4388a0
@@ -104,13 +104,16 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
val contributedDescriptors = classDesc.unsubstitutedMemberScope.getContributedDescriptors()
// (includes declarations from supers)
val methods = contributedDescriptors.filterIsInstance<FunctionDescriptor>()
val functions = contributedDescriptors.filterIsInstance<FunctionDescriptor>()
val properties = contributedDescriptors.filterIsInstance<PropertyDescriptor>()
val getters = properties.mapNotNull { it.getter }
val setters = properties.mapNotNull { it.setter }
return methods + getters + setters
val allMethods = functions + getters + setters
// TODO: adding or removing 'open' modifier will break the binary compatibility
return allMethods.filter { it.modality != Modality.FINAL }
}
fun generate(classDesc: ClassDescriptor) {