b454fcc1e0
This is needed to avoid clashes between different dumps from different handlers
61 lines
1.0 KiB
Plaintext
Vendored
61 lines
1.0 KiB
Plaintext
Vendored
class C<T : Any?> {
|
|
constructor(t: T) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
val t: T
|
|
field = t
|
|
get
|
|
|
|
override fun hashCode(): Int {
|
|
return <this>.<get-t>() as Int
|
|
}
|
|
|
|
}
|
|
|
|
inline class IC<TT : Any?> {
|
|
constructor(c: C<TT>) /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
val c: C<TT>
|
|
field = c
|
|
get
|
|
|
|
fun foo(): Int {
|
|
return <this>.<get-c>().hashCode()
|
|
}
|
|
|
|
override fun toString(): String {
|
|
return "IC(" + "c=" + <this>.#c + ")"
|
|
}
|
|
|
|
override fun hashCode(): Int {
|
|
return <this>.#c.hashCode()
|
|
}
|
|
|
|
override operator fun equals(other: Any?): Boolean {
|
|
when {
|
|
other !is IC<TT> -> return false
|
|
}
|
|
val tmp0_other_with_cast: IC<TT> = other as IC<TT>
|
|
when {
|
|
EQEQ(arg0 = <this>.#c, arg1 = tmp0_other_with_cast.#c).not() -> return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
}
|
|
|
|
fun box(): String {
|
|
val ic: IC<Int> = IC<Int>(c = C<Int>(t = 42))
|
|
when {
|
|
EQEQ(arg0 = ic.foo(), arg1 = 42).not() -> return "FAIL"
|
|
}
|
|
return "OK"
|
|
}
|