[FIR] Add receiver for lambda in position of default argument

#KT-36905 Fixed
This commit is contained in:
Dmitriy Novozhilov
2020-03-02 11:54:55 +03:00
parent c12fb1e069
commit 7ee125e1ad
10 changed files with 73 additions and 61 deletions
@@ -9,7 +9,7 @@ fun test(param: String) {
val local_val = 4
val bar = fun B.(fun_param: Int) {
param.length
<!UNRESOLVED_REFERENCE!>b_fun<!>()
b_fun()
val inner_bar = local_val + fun_param
<!UNRESOLVED_REFERENCE!>bar<!>
+1 -1
View File
@@ -4,7 +4,7 @@ fun test() {
val a: (Int?).() -> Unit = a@{
if (this != null) {
val b: String.() -> Unit = {
this@a.<!UNRESOLVED_REFERENCE!>times<!>(5) // a@ Unresolved
this@a.times(5) // a@ Unresolved
}
}
}
@@ -2,15 +2,15 @@
fun test() {
(fun Foo.() {
<!UNRESOLVED_REFERENCE!>bar<!>()
bar()
(fun Barr.() {
this.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>bar<!>()
this.bar()
bar()
})
})
(fun Barr.() {
this.<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>bar<!>()
this.bar()
bar()
})
}
@@ -5,14 +5,14 @@ class A(val a:Int) {
fun Byte.xx() : Double.() -> Any {
checkSubtype<Byte>(this)
val a: Double.() -> Unit = {
<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Double>(this)
checkSubtype<Double>(this)
checkSubtype<Byte>(this@xx)
checkSubtype<B>(this@B)
checkSubtype<A>(this@A)
}
val b: Double.() -> Unit = a@{ <!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Double>(this@a) + checkSubtype<Byte>(this@xx) }
val b: Double.() -> Unit = a@{ checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx) }
val c = a@{ -> this@a + checkSubtype<Byte>(this@xx) }
return (a@{<!INAPPLICABLE_CANDIDATE!>checkSubtype<!><Double>(this@a) + checkSubtype<Byte>(this@xx)})
return (a@{checkSubtype<Double>(this@a) + checkSubtype<Byte>(this@xx)})
}
}
}