FIR resolve: introduce builtInExtensionFunctionReceiverValue

This commit allows us to distinguish extension lambda receivers
from simple extension receivers thus fixing some resolve problems.
This commit is contained in:
Mikhail Glukhikh
2019-12-26 13:38:04 +03:00
parent de50f8aef3
commit 0c88ecdc56
20 changed files with 144 additions and 101 deletions
@@ -35,37 +35,37 @@ fun test() {
foo {
bar {
baz {
<!INAPPLICABLE_CANDIDATE!>y<!>()
y()
<!UNRESOLVED_REFERENCE!>x<!>()
with(D()) {
<!INAPPLICABLE_CANDIDATE!>x<!>()
x()
}
foo1 {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
with(A()) {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
with(D()) {
<!INAPPLICABLE_CANDIDATE!>x<!>()
x()
}
A().<!UNRESOLVED_REFERENCE!>x<!>()
}
foo2 {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
foo3 {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
}
}
@@ -75,8 +75,8 @@ fun test() {
foo {
baz {
bar {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
}
}
@@ -86,8 +86,8 @@ fun test() {
foo {
baz {
bar {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
}
}
@@ -97,8 +97,8 @@ fun test() {
foo {
baz {
bar {
<!INAPPLICABLE_CANDIDATE!>x<!>()
<!INAPPLICABLE_CANDIDATE!>y<!>()
x()
y()
}
}
}
@@ -24,10 +24,10 @@ fun test(a: A, b: B) {
}
with(b) {
a.<!INAPPLICABLE_CANDIDATE!>foo<!>()
a.(<!INAPPLICABLE_CANDIDATE!>foo<!>)()
a.foo()
a.(foo)()
<!INAPPLICABLE_CANDIDATE!>(a.foo)()<!>
(a.foo)()
(a.foo)(this)
a.foo(this)
@@ -35,8 +35,8 @@ fun test(a: A, b: B) {
with(a) {
with(b) {
<!INAPPLICABLE_CANDIDATE!>foo<!>()
(<!INAPPLICABLE_CANDIDATE!>foo<!>)()
foo()
(foo)()
}
}
}