sealed class A : CharSequence { data class B : A, CharSequence { val c: CharSequence field = c get constructor(c: CharSequence) /* primary */ { super/*A*/() /* () */ } override operator fun get(index: Int): Char { return .#c.get(index = index) } override fun subSequence(startIndex: Int, endIndex: Int): CharSequence { return .#c.subSequence(startIndex = startIndex, endIndex = endIndex) } operator fun component1(): CharSequence { return .#c } fun copy(c: CharSequence = .#c): B { return B(c = c) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is B -> return false } val tmp_0: B = other as B when { EQEQ(arg0 = .#c, arg1 = tmp_0.#c).not() -> return false } return true } override fun hashCode(): Int { return .#c.hashCode() } override fun toString(): String { return "B(" + "c=" + .#c + ")" } override val length: Int override get(): Int { return .#c.() } } protected constructor() /* primary */ { super/*Any*/() /* () */ } }