FIR: strengthen resolution success check for augmented array set call

This commit removes some false ambiguities &
fixes compilation of tree-generator module with FIR
This commit is contained in:
Jinseong Jeon
2020-12-18 00:06:46 -08:00
committed by TeamCityServer
parent 9bf2dfaa02
commit 9c2d06cf70
8 changed files with 88 additions and 73 deletions
@@ -0,0 +1,18 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun interface IFoo {
fun foo(i: Int)
}
fun interface IFoo2 : IFoo
object A
operator fun A.get(i: IFoo) = 1
operator fun A.set(i: IFoo, newValue: Int) {}
fun withVararg(vararg xs: Int) = 42
fun test1() {
<!UNRESOLVED_REFERENCE!>A[::withVararg] += 1<!>
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun interface IFoo {
@@ -20,7 +20,7 @@ object MismatchingTypes {
fun testMismatchingTypes() {
++<!INAPPLICABLE_CANDIDATE!>MismatchingTypes[0]<!>
<!INAPPLICABLE_CANDIDATE!>MismatchingTypes[0]<!>++
MismatchingTypes[0] += 1
<!UNRESOLVED_REFERENCE!>MismatchingTypes[0] += 1<!>
}
object MismatchingArities1 {
@@ -36,10 +36,10 @@ object MismatchingArities2 {
fun testMismatchingArities() {
++<!INAPPLICABLE_CANDIDATE!>MismatchingArities1[0]<!>
<!INAPPLICABLE_CANDIDATE!>MismatchingArities1[0]<!>++
MismatchingArities1[0] += 1
<!UNRESOLVED_REFERENCE!>MismatchingArities1[0] += 1<!>
++<!INAPPLICABLE_CANDIDATE!>MismatchingArities2[0]<!>
<!INAPPLICABLE_CANDIDATE!>MismatchingArities2[0]<!>++
MismatchingArities2[0] += 1
<!UNRESOLVED_REFERENCE!><!INAPPLICABLE_CANDIDATE!>MismatchingArities2[0]<!> += 1<!>
}