Files
kotlin-fork/compiler/testData/ir/irText/expressions/callableReferences/genericLocalClassConstructorReference.kt.txt
T

65 lines
1.1 KiB
Plaintext
Vendored

open class L<LL : Any?> {
constructor(ll: LL) /* primary */ {
super/*Any*/()
/* <init>() */
}
val ll: LL
field = ll
get
}
class Rec<T : Any?> {
constructor(rt: T) /* primary */ {
super/*Any*/()
/* <init>() */
}
val rt: T
field = rt
get
}
val <PT : Any?> Rec<PT>.p: L<PT>
get(): L<PT> {
local class PLocal<LT : Any?> : L<LT> {
constructor(lt: LT, pt: PT) /* primary */ {
super/*L*/<LT>(ll = lt)
/* <init>() */
}
val pt: PT
field = pt
get
}
return foo2<PT, PT, PLocal<PT>>(t1 = <this>.<get-rt>(), t2 = <this>.<get-rt>(), bb = PLocal::<init>/*<PT>()*/)
}
fun <FT : Any?> Rec<FT>.fn(): L<FT> {
local class FLocal<LT : Any?> : L<LT> {
constructor(lt: LT, pt: FT) /* primary */ {
super/*L*/<LT>(ll = lt)
/* <init>() */
}
val pt: FT
field = pt
get
}
return foo2<FT, FT, FLocal<FT, FT>>(t1 = <this>.<get-rt>(), t2 = <this>.<get-rt>(), bb = FLocal::<init>/*<FT>()*/)
}
fun <T1 : Any?, T2 : Any?, R : Any?> foo2(t1: T1, t2: T2, bb: Function2<T1, T2, R>): R {
return bb.invoke(p1 = t1, p2 = t2)
}