02604060ae
1. Local declarations don't participate in IR-linkage, because they can be referenced only inside the same body -> can be dropped from IR text tests. 2. Mangled names for private declarations computed by descriptors/fir are actually not used anywhere (they are recomputed by IR immediately before serialization of IR). But sometimes such mangled names diverge between K1 and K2 -> don't check them, but always check mangled names computed by IR even for private declarations. 3. Also: Drop DUMP_LOCAL_DECLARATION_SIGNATURES test directive. ^KT-57428 Obsolete ^KT-57430 Obsolete ^KT-57434 Obsolete ^KT-57778 Obsolete ^KT-57775 Obsolete
46 lines
793 B
Kotlin
Vendored
46 lines
793 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// !LANGUAGE: +ContextReceivers
|
|
|
|
interface Lazy<T>
|
|
|
|
context(Lazy<Int>, Lazy<CharSequence>)
|
|
fun test1() {}
|
|
|
|
context(Lazy<T>)
|
|
fun <T> Lazy<Int>.test2() {}
|
|
|
|
context(Lazy<Lazy<T>>)
|
|
fun <T> Lazy<Int>.test3() {}
|
|
|
|
fun <T> f(lazy1: Lazy<Int>, lazy2: Lazy<CharSequence>, lazyT: Lazy<T>, lazyLazyT: Lazy<Lazy<T>>) {
|
|
with(lazy1) {
|
|
with(lazy2) {
|
|
test1()
|
|
test2()
|
|
}
|
|
}
|
|
with(lazy2) {
|
|
with(lazy1) {
|
|
test1()
|
|
test2()
|
|
}
|
|
}
|
|
with(lazyT) {
|
|
with(lazy1) {
|
|
test2()
|
|
}
|
|
}
|
|
with(lazyLazyT) {
|
|
with(lazy1) {
|
|
test2()
|
|
test3()
|
|
}
|
|
}
|
|
with(lazy1) {
|
|
with(lazyLazyT) {
|
|
test2()
|
|
test3()
|
|
}
|
|
}
|
|
}
|