FIR: Add test for get class + let in delegation

This commit is contained in:
Mikhail Glukhikh
2021-11-18 10:05:31 +03:00
committed by teamcity
parent 1c8b6dccff
commit 2338281889
6 changed files with 50 additions and 0 deletions
@@ -0,0 +1,20 @@
FILE: getClassLet.kt
public final class SomeClass : R|kotlin/Any| {
public constructor(): R|SomeClass| {
super<R|kotlin/Any|>()
}
}
public final inline fun <reified K> foo(klass: R|kotlin/reflect/KClass<*>|): R|K| {
^foo Null(null)!!
}
public final val some: R|kotlin/collections/Map<kotlin/String, kotlin/String>|by R|kotlin/lazy|<R|kotlin/collections/Map<kotlin/String, kotlin/String>|>(<L> = lazy@fun <anonymous>(): R|kotlin/collections/Map<kotlin/String, kotlin/String>| <inline=NoInline> {
^ <getClass>(Q|SomeClass|).R|kotlin/let|<R|kotlin/reflect/KClass<SomeClass>|, R|kotlin/collections/Map<kotlin/String, kotlin/String>|>(<L> = let@fun <anonymous>(it: R|kotlin/reflect/KClass<SomeClass>|): R|kotlin/collections/Map<kotlin/String, kotlin/String>| <inline=Inline, kind=EXACTLY_ONCE> {
^ R|/foo|<R|kotlin/collections/Map<kotlin/String, kotlin/String>|>(R|<local>/it|)
}
)
}
)
public get(): R|kotlin/collections/Map<kotlin/String, kotlin/String>| {
^ D|/some|.R|kotlin/getValue|<R|kotlin/collections/Map<kotlin/String, kotlin/String>|>(Null(null), ::R|/some|)
}
@@ -0,0 +1,11 @@
import kotlin.reflect.KClass
class SomeClass
inline fun <reified K> foo(klass: KClass<*>): K = null!!
val some: Map<String, String> by lazy {
SomeClass::class.let {
foo(it)
}
}