data class Test { constructor(x: T, y: String = "") /* primary */ { super/*Any*/() /* () */ } val x: T field = x get val y: String field = y get operator fun component1(): T { return .#x } operator fun component2(): String { return .#y } fun copy(x: T = .#x, y: String = .#y): Test { return Test(x = x, y = y) } override fun toString(): String { return "Test(" + "x=" + .#x + ", " + "y=" + .#y + ")" } override fun hashCode(): Int { var result: Int = when { EQEQ(arg0 = .#x, arg1 = null) -> 0 else -> .#x.hashCode() } result = result.times(other = 31).plus(other = .#y.hashCode()) return result } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Test -> return false } val tmp0_other_with_cast: Test = other as Test when { EQEQ(arg0 = .#x, arg1 = tmp0_other_with_cast.#x).not() -> return false } when { EQEQ(arg0 = .#y, arg1 = tmp0_other_with_cast.#y).not() -> return false } return true } }