[FE] Implement temporary resolution algorithm

This commit is contained in:
Anastasiya Shadrina
2021-02-15 18:54:11 +07:00
committed by TeamCityServer
parent d923c95671
commit c34fe8d547
43 changed files with 800 additions and 24 deletions
@@ -0,0 +1,48 @@
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()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>test3<!>()
}
}
with(lazy2) {
with(lazy1) {
test1()
test2()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>test3<!>()
}
}
with(lazyT) {
with(lazy1) {
<!NO_CONTEXT_RECEIVER!>test1()<!>
test2()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>test3<!>()
}
}
with(lazyLazyT) {
with(lazy1) {
<!NO_CONTEXT_RECEIVER!>test1()<!>
test2()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>test3<!>()
}
}
with(lazy1) {
with(lazyLazyT) {
<!NO_CONTEXT_RECEIVER!>test1()<!>
test2()
test3()
}
}
}