Files
kotlin-fork/compiler/testData/ir/irText/expressions/useImportedMember.kt.txt
T
Dmitriy Novozhilov b454fcc1e0 [FIR] Save IR dumps to .ir.txt files instead of .txt in tests
This is needed to avoid clashes between different dumps from different
  handlers
2021-10-12 17:26:36 +03:00

103 lines
1.7 KiB
Kotlin
Vendored

interface I<G : Any?> {
fun <T : Any?> T.fromInterface(): T {
return <this>
}
fun genericFromSuper(g: G): G {
return g
}
}
open class BaseClass {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
val <T : Any?> T.fromClass: T
get(): T {
return <this>
}
}
object C : BaseClass, I<String> {
private constructor() /* primary */ {
super/*BaseClass*/()
/* <init>() */
}
fun f(s: Int): Int {
return 1
}
fun f(s: String): Int {
return 2
}
fun Boolean.f(): Int {
return 3
}
var p: Int
field = 4
get
set
val Int.ext: Int
get(): Int {
return 6
}
fun <T : Any?> g1(t: T): T {
return t
}
val <T : Any?> T.g2: T
get(): T {
return <this>
}
}
fun box(): String {
when {
EQEQ(arg0 = C.f(s = 1), arg1 = 1).not() -> return "1"
}
when {
EQEQ(arg0 = C.f(s = "s"), arg1 = 2).not() -> return "2"
}
when {
EQEQ(arg0 = (C, true).f(), arg1 = 3).not() -> return "3"
}
when {
EQEQ(arg0 = C.<get-p>(), arg1 = 4).not() -> return "4"
}
C.<set-p>(<set-?> = 5)
when {
EQEQ(arg0 = C.<get-p>(), arg1 = 5).not() -> return "5"
}
when {
EQEQ(arg0 = (C, 5).<get-ext>(), arg1 = 6).not() -> return "6"
}
when {
EQEQ(arg0 = C.g1<String>(t = "7"), arg1 = "7").not() -> return "7"
}
when {
EQEQ(arg0 = (C, "8").<get-g2><String>(), arg1 = "8").not() -> return "8"
}
when {
EQEQ(arg0 = (C, 9).fromInterface<Int>(), arg1 = 9).not() -> return "9"
}
when {
EQEQ(arg0 = (C, "10").<get-fromClass><String>(), arg1 = "10").not() -> return "10"
}
when {
EQEQ(arg0 = C.genericFromSuper(g = "11"), arg1 = "11").not() -> return "11"
}
return "OK"
}