JVM_IR KT-42137 bridges are not generated for fake overrides

This commit is contained in:
Dmitry Petrov
2020-11-20 10:51:50 +03:00
parent 5d5473ef08
commit e59c8e0a5c
14 changed files with 116 additions and 2 deletions
@@ -350,9 +350,12 @@ internal class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass
//
// This can still break binary compatibility, but it matches the behavior of the JVM backend.
if (irFunction.isFakeOverride) {
irFunction.overriddenSymbols.asSequence().map { it.owner }.filter { !it.isJvmAbstract(context.state.jvmDefaultMode) }
irFunction.overriddenSymbols.asSequence()
.map { it.owner }.filter { !it.isJvmAbstract(context.state.jvmDefaultMode) }
.forEach { override ->
override.allOverridden().mapTo(blacklist) { it.jvmMethod }
override.allOverridden()
.filter { !it.isFakeOverride }
.mapTo(blacklist) { it.jvmMethod }
}
}