Replace resolution error for suspend-conversion with call checker error
This commit is contained in:
Vendored
+16
-1
@@ -25,4 +25,19 @@ object Test2 {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Test3 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(x: Int = 42): Int = 0
|
||||
|
||||
object Scope {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(::bar)
|
||||
result
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+15
@@ -25,4 +25,19 @@ object Test2 {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Test3 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(x: Int = 42): Int = 0
|
||||
|
||||
object Scope {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(::bar)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
@@ -34,3 +34,21 @@ public object Test2 {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public object Test3 {
|
||||
private constructor Test3()
|
||||
public final suspend fun bar(/*0*/ x: kotlin.Int = ...): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun </*0*/ T> foo(/*0*/ f: suspend () -> T): T
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public object Scope {
|
||||
private constructor Scope()
|
||||
public final fun bar(/*0*/ x: kotlin.Int = ...): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
// !LANGUAGE: -SuspendConversion
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
object Test1 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(x: Int = 42): Int = 0
|
||||
|
||||
object Scope {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(::bar)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Test2 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(): Int = 0
|
||||
|
||||
object Scope1 {
|
||||
suspend fun bar(x: Int = 42): Double = 0.0
|
||||
|
||||
object Scope2 {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(::bar)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
// !LANGUAGE: -SuspendConversion
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
|
||||
object Test1 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(x: Int = 42): Int = 0
|
||||
|
||||
object Scope {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(<!UNSUPPORTED_FEATURE!>::bar<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object Test2 {
|
||||
fun <T> foo(f: suspend () -> T): T = TODO()
|
||||
|
||||
suspend fun bar(): Int = 0
|
||||
|
||||
object Scope1 {
|
||||
suspend fun bar(x: Int = 42): Double = 0.0
|
||||
|
||||
object Scope2 {
|
||||
fun bar(x: Int = 42): String = ""
|
||||
|
||||
fun test() {
|
||||
val result = foo(<!COMPATIBILITY_WARNING!>::bar<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package
|
||||
|
||||
public object Test1 {
|
||||
private constructor Test1()
|
||||
public final suspend fun bar(/*0*/ x: kotlin.Int = ...): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun </*0*/ T> foo(/*0*/ f: suspend () -> T): T
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public object Scope {
|
||||
private constructor Scope()
|
||||
public final fun bar(/*0*/ x: kotlin.Int = ...): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public object Test2 {
|
||||
private constructor Test2()
|
||||
public final suspend fun bar(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun </*0*/ T> foo(/*0*/ f: suspend () -> T): T
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public object Scope1 {
|
||||
private constructor Scope1()
|
||||
public final suspend fun bar(/*0*/ x: kotlin.Int = ...): kotlin.Double
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public object Scope2 {
|
||||
private constructor Scope2()
|
||||
public final fun bar(/*0*/ x: kotlin.Int = ...): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
}
|
||||
+9
-5
@@ -5,6 +5,8 @@ fun foo1(f: suspend () -> String) {}
|
||||
fun foo2(f: suspend (Int) -> String) {}
|
||||
fun foo3(f: suspend () -> Unit) {}
|
||||
|
||||
fun bar(): String = ""
|
||||
|
||||
fun test(
|
||||
f0: suspend () -> String,
|
||||
f1: () -> String,
|
||||
@@ -14,10 +16,12 @@ fun test(
|
||||
foo1 { "str" }
|
||||
foo1(f0)
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>foo1<!>(f1)
|
||||
<!INAPPLICABLE_CANDIDATE!>foo2<!>(f2)
|
||||
<!INAPPLICABLE_CANDIDATE!>foo3<!>(f3)
|
||||
foo1(f1)
|
||||
foo2(f2)
|
||||
foo3(f3)
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>foo1<!>(f2)
|
||||
<!INAPPLICABLE_CANDIDATE!>foo1<!>(f3)
|
||||
foo1(::bar)
|
||||
|
||||
foo1(f2)
|
||||
foo1(f3)
|
||||
}
|
||||
|
||||
+9
-5
@@ -5,6 +5,8 @@ fun foo1(f: suspend () -> String) {}
|
||||
fun foo2(f: suspend (Int) -> String) {}
|
||||
fun foo3(f: suspend () -> Unit) {}
|
||||
|
||||
fun bar(): String = ""
|
||||
|
||||
fun test(
|
||||
f0: suspend () -> String,
|
||||
f1: () -> String,
|
||||
@@ -14,10 +16,12 @@ fun test(
|
||||
foo1 { "str" }
|
||||
foo1(f0)
|
||||
|
||||
foo1(<!TYPE_MISMATCH!>f1<!>)
|
||||
foo2(<!TYPE_MISMATCH!>f2<!>)
|
||||
foo3(<!TYPE_MISMATCH!>f3<!>)
|
||||
foo1(<!UNSUPPORTED_FEATURE!>f1<!>)
|
||||
foo2(<!UNSUPPORTED_FEATURE!>f2<!>)
|
||||
foo3(<!UNSUPPORTED_FEATURE!>f3<!>)
|
||||
|
||||
foo1(<!TYPE_MISMATCH!>f2<!>)
|
||||
foo1(<!TYPE_MISMATCH!>f3<!>)
|
||||
foo1(<!UNSUPPORTED_FEATURE!>::bar<!>)
|
||||
|
||||
foo1(<!TYPE_MISMATCH, UNSUPPORTED_FEATURE!>f2<!>)
|
||||
foo1(<!TYPE_MISMATCH, UNSUPPORTED_FEATURE!>f3<!>)
|
||||
}
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
package
|
||||
|
||||
public fun bar(): kotlin.String
|
||||
public fun foo1(/*0*/ f: suspend () -> kotlin.String): kotlin.Unit
|
||||
public fun foo2(/*0*/ f: suspend (kotlin.Int) -> kotlin.String): kotlin.Unit
|
||||
public fun foo3(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
||||
|
||||
Reference in New Issue
Block a user