[FIR] Resolve rhs of += in dependent context

This commit is contained in:
Dmitriy Novozhilov
2020-07-06 12:51:47 +03:00
parent 943b59b5d8
commit 29849b1330
15 changed files with 303 additions and 53 deletions
@@ -37,6 +37,6 @@ class B {
}
fun foo3(x: B) = {
<!VARIABLE_EXPECTED!>x<!> += { "" }
<!VARIABLE_EXPECTED!>x<!> += id { "" }
x += { "" }
x += id { "" }
}
@@ -13,8 +13,8 @@ fun <T> id(x: T) = x
fun main() {
var newValue = A()
<!INAPPLICABLE_CANDIDATE!>newValue += id { total -> A() }<!>
<!INAPPLICABLE_CANDIDATE!>newValue += id(fun(total) = A())<!>
<!INAPPLICABLE_CANDIDATE!>newValue += id(fun(total): A { return A() })<!>
<!ASSIGN_OPERATOR_AMBIGUITY!>newValue += id { total -> A() }<!>
<!ASSIGN_OPERATOR_AMBIGUITY!>newValue += id(fun(total) = A())<!>
<!ASSIGN_OPERATOR_AMBIGUITY!>newValue += id(fun(total): A { return A() })<!>
<!ASSIGN_OPERATOR_AMBIGUITY!>newValue += id(::foo)<!>
}