open class ControlFlowInfo : Map { constructor(map: Map) /* primary */ { super/*Any*/() /* () */ } val map: Map field = map get override val entries: Set> override get(): Set> { return .#map.() } override val keys: Set override get(): Set { return .#map.() } override val size: Int override get(): Int { return .#map.() } override val values: Collection override get(): Collection { return .#map.() } override fun containsKey(key: K): Boolean { return .#map.containsKey(key = key) } override fun containsValue(value: V): Boolean { return .#map.containsValue(value = value) } override operator fun get(key: K): V? { return .#map.get(key = key) } override fun isEmpty(): Boolean { return .#map.isEmpty() } } class StringFlowInfo : ControlFlowInfo { constructor(map: Map) /* primary */ { super/*ControlFlowInfo*/(map = map) /* () */ } fun foo(info: StringFlowInfo) { .() /*~> Unit */ info.() /*~> Unit */ } }