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