class FirSession { constructor(name: String) /* primary */ { super/*Any*/() /* () */ } 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*/() /* () */ } 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*/() /* () */ } private val components: Fir2IrComponents field = components private get override val classifierStorage: Fir2IrClassifierStorage override get(): Fir2IrClassifierStorage { return .#components.() } override val session: FirSession override get(): FirSession { return .#components.() } private val name: String field = .().() private get }