FIR2IR: bind fake overrides for classes on the fly right after member processing

#KT-57441 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-03-22 14:57:59 +01:00
committed by Space Team
parent d3f1571d35
commit 9af944669a
3 changed files with 194 additions and 2 deletions
@@ -0,0 +1,53 @@
class Wrapper {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
private val dummy: <no name provided>
field = { // BLOCK
local class <no name provided> : Bar {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
<no name provided>()
}
private get
private val bar: <no name provided>
field = { // BLOCK
local class <no name provided> : Bar {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override val foo: String
override get(): String {
return <this>.#$$delegate_0.<get-foo>()
}
private /* final field */ val $$delegate_0: <no name provided> = <this>.<get-dummy>()
}
<no name provided>()
}
private get
}
interface Bar {
val foo: String
get(): String {
return ""
}
}