FIR: Fix SAM conversion for constructor calls

This commit is contained in:
Denis Zharkov
2020-02-11 18:27:20 +03:00
parent 51db272e0e
commit 9c1577092b
16 changed files with 59 additions and 58 deletions
@@ -18,6 +18,6 @@ public class Observable<T> {
import j.*
class K : <!INAPPLICABLE_CANDIDATE!>Observable<String><!>({})
class K : Observable<String>({})
class J : Observable<String>(null)
@@ -14,5 +14,5 @@ public class Observable<T> {
typealias ObservableAlias<T> = Observable<T>
typealias ObservableIntAlias = Observable<Int>
class A : <!INAPPLICABLE_CANDIDATE!>ObservableAlias<String><!>({})
class B : <!INAPPLICABLE_CANDIDATE!>ObservableIntAlias<!>({})
class A : ObservableAlias<String>({})
class B : ObservableIntAlias({})
@@ -13,5 +13,5 @@ public class J {
package test
fun test() {
<!INAPPLICABLE_CANDIDATE!>J<!>("", r = { }, z = false)
J("", r = { }, z = false)
}
@@ -10,5 +10,5 @@ public class A<E> {
// FILE: main.kt
fun foo() {
val result: A<String> = <!INAPPLICABLE_CANDIDATE!>A<!><String> { x, y -> 1 }
val result: A<String> = A<String> { x, y -> 1 }
}
@@ -36,10 +36,10 @@ fun main(x2: Runnable) {
Test.foo1(x2, *arrayOf(""))
val i1 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf())
val i2 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, *arrayOf())
val i2 = Test({}, *arrayOf())
val i3 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, x3)
val i4 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf(""))
val i5 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, *arrayOf(""))
val i5 = Test({}, {}, *arrayOf(""))
val i6 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, arrayOf())
i1.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, arrayOf())
@@ -36,19 +36,19 @@ fun main(x2: Runnable) {
Test.foo1(x2, *arrayOf(""))
val i1 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf())
val i2 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, *arrayOf())
val i2 = Test({}, *arrayOf())
val i3 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, x3)
val i4 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf(""))
val i5 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, *arrayOf(""))
val i5 = Test({}, {}, *arrayOf(""))
val i6 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, arrayOf())
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, arrayOf())
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, *arrayOf())
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, x2, arrayOf())
i2.<!UNRESOLVED_REFERENCE!>foo2<!>(x2, {}, *arrayOf())
i2.<!INAPPLICABLE_CANDIDATE!>foo2<!>({}, {}, arrayOf())
i2.foo2({}, {}, *arrayOf())
i2.<!INAPPLICABLE_CANDIDATE!>foo2<!>({}, x2, arrayOf())
i2.foo2(x2, {}, *arrayOf())
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, arrayOf(""))
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, *x3)
i2.<!UNRESOLVED_REFERENCE!>foo2<!>({}, x2, x3)
i2.<!UNRESOLVED_REFERENCE!>foo2<!>(x2, {}, *arrayOf(""))
}
i2.<!INAPPLICABLE_CANDIDATE!>foo2<!>({}, {}, arrayOf(""))
i2.foo2({}, {}, *x3)
i2.<!INAPPLICABLE_CANDIDATE!>foo2<!>({}, x2, x3)
i2.foo2(x2, {}, *arrayOf(""))
}
@@ -36,10 +36,10 @@ fun main(x2: Runnable) {
Test.foo1(x2, *arrayOf(""))
val i1 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf())
val i2 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, *arrayOf())
val i2 = Test({}, *arrayOf())
val i3 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, x3)
val i4 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, arrayOf(""))
val i5 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, *arrayOf(""))
val i5 = Test({}, {}, *arrayOf(""))
val i6 = <!INAPPLICABLE_CANDIDATE!>Test<!>({}, {}, arrayOf())
i1.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, arrayOf())
@@ -51,4 +51,4 @@ fun main(x2: Runnable) {
i1.<!UNRESOLVED_REFERENCE!>foo2<!>({}, {}, *x3)
i1.<!UNRESOLVED_REFERENCE!>foo2<!>({}, x2, x3)
i1.<!UNRESOLVED_REFERENCE!>foo2<!>(x2, {}, *arrayOf(""))
}
}