Files
kotlin-fork/compiler/testData/ir/irText/firProblems/Fir2IrClassifierStorage.kt.txt
T
Mikhail Glukhikh d4b0688690 FIR: introduce delegate field initializers
Before this commit we initialized delegate fields in primary constructor,
that could provoke NPE in case delegate is used in initializer of
some property backing field.
Now we initialize delegate fields directly instead.
2021-02-08 14:28:27 +03:00

66 lines
1.2 KiB
Plaintext
Vendored

class FirSession {
constructor(name: String) /* primary */ {
super/*Any*/()
/* <init>() */
}
val name: String
field = name
get
}
interface Fir2IrComponents {
abstract val session: FirSession
abstract get
abstract val classifierStorage: Fir2IrClassifierStorage
abstract get
}
class Fir2IrComponentsStorage : Fir2IrComponents {
constructor(session: FirSession) /* primary */ {
super/*Any*/()
/* <init>() */
}
override val session: FirSession
field = session
override get
override lateinit var classifierStorage: Fir2IrClassifierStorage
override get
open set
}
class Fir2IrClassifierStorage : Fir2IrComponents {
constructor(components: Fir2IrComponents) /* primary */ {
super/*Any*/()
/* <init>() */
}
private val components: Fir2IrComponents
field = components
private get
override val classifierStorage: Fir2IrClassifierStorage
override get(): Fir2IrClassifierStorage {
return <this>.#components.<get-classifierStorage>()
}
override val session: FirSession
override get(): FirSession {
return <this>.#components.<get-session>()
}
private val name: String
field = <this>.<get-session>().<get-name>()
private get
}