Fix bridge generation for special builtin override
Use method itself signature as common bridge delegate #KT-11285 Fixed
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import java.util.*
|
||||
|
||||
open class Base<Target : DatabaseEntity>() : HashSet<Target>() {
|
||||
override fun remove(element: Target): Boolean {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
class Derived : Base<Issue>() {
|
||||
// common "synthetic bridge override fun remove(element: DatabaseEntity): Boolean" should call
|
||||
// `INVOKEVIRTUAL remove(Issue)`
|
||||
// instead of `INVOKEVIRTUAL remove(OBJECT)`
|
||||
override fun remove(element: Issue): Boolean {
|
||||
return super.remove(element)
|
||||
}
|
||||
}
|
||||
|
||||
open class DatabaseEntity
|
||||
class Issue: DatabaseEntity()
|
||||
|
||||
fun box(): String {
|
||||
val sprintIssues = Derived()
|
||||
if (!sprintIssues.remove(Issue())) return "Fail"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user