JVM IR: don't rename fake overrides for fields

In case derived class has a field with the same name as the base class,
RenameFieldsLowering previously tried to rename one of the fields by
adding the "...$1" suffix, which led to NoSuchFieldError.
This commit is contained in:
Alexander Udalov
2020-03-11 21:14:19 +01:00
parent 9ceca69154
commit 244db9bcf9
6 changed files with 42 additions and 1 deletions
@@ -96,7 +96,9 @@ private class FieldNameCollector : IrElementVisitorVoid {
}
override fun visitField(declaration: IrField) {
nameToField.getOrPut(declaration.parent to declaration.name) { mutableListOf() }.add(declaration)
if (!declaration.isFakeOverride) {
nameToField.getOrPut(declaration.parent to declaration.name) { mutableListOf() }.add(declaration)
}
}
}