data class Test1 { val x: T field = x get constructor(x: T) /* primary */ { super/*Any*/() /* () */ } operator fun component1(): T { return .#x } fun copy(x: T = .#x): Test1 { return Test1(x = x) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Test1 -> return false } val tmp_0: Test1 = other as Test1 when { EQEQ(arg0 = .#x, arg1 = tmp_0.#x).not() -> return false } return true } override fun hashCode(): Int { return when { EQEQ(arg0 = .#x, arg1 = null) -> 0 else -> .#x.hashCode() } } override fun toString(): String { return "Test1(" + "x=" + .#x + ")" } } data class Test2 { val x: T field = x get constructor(x: T) /* primary */ { super/*Any*/() /* () */ } operator fun component1(): T { return .#x } fun copy(x: T = .#x): Test2 { return Test2(x = x) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Test2 -> return false } val tmp_1: Test2 = other as Test2 when { EQEQ(arg0 = .#x, arg1 = tmp_1.#x).not() -> return false } return true } override fun hashCode(): Int { return .#x.hashCode() } override fun toString(): String { return "Test2(" + "x=" + .#x + ")" } } data class Test3 { val x: List field = x get constructor(x: List) /* primary */ { super/*Any*/() /* () */ } operator fun component1(): List { return .#x } fun copy(x: List = .#x): Test3 { return Test3(x = x) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Test3 -> return false } val tmp_2: Test3 = other as Test3 when { EQEQ(arg0 = .#x, arg1 = tmp_2.#x).not() -> return false } return true } override fun hashCode(): Int { return .#x.hashCode() } override fun toString(): String { return "Test3(" + "x=" + .#x + ")" } } data class Test4 { val x: List field = x get constructor(x: List) /* primary */ { super/*Any*/() /* () */ } operator fun component1(): List { return .#x } fun copy(x: List = .#x): Test4 { return Test4(x = x) } override operator fun equals(other: Any?): Boolean { when { EQEQEQ(arg0 = , arg1 = other) -> return true } when { other !is Test4 -> return false } val tmp_3: Test4 = other as Test4 when { EQEQ(arg0 = .#x, arg1 = tmp_3.#x).not() -> return false } return true } override fun hashCode(): Int { return .#x.hashCode() } override fun toString(): String { return "Test4(" + "x=" + .#x + ")" } }