KT-3150 Kotlin m4 don't recognize function literals
#KT-3150 fixed added check for PLACEHOLDER_FUNCTION_TYPE to constraint system
This commit is contained in:
@@ -8,7 +8,7 @@ public inline fun <T: Closeable, R> T.use1(block: (T)-> R) : R {
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
C().<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>use1<!> {
|
||||
C().use1 {
|
||||
w -> // ERROR here
|
||||
<!UNRESOLVED_REFERENCE!>x<!>
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ public inline fun <T: Closeable, R> T.use(block: (t: T)-> R) : R {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
C().<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>use<!> {
|
||||
C().use {
|
||||
it.close()
|
||||
<!UNRESOLVED_REFERENCE!>x<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,9 +11,9 @@ public inline fun <T: Closeable, R> use(t: T, block: T.(T)-> R) : R {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>use<!>(C()) {
|
||||
use(C()) {
|
||||
this.close()
|
||||
it.close()
|
||||
<!UNRESOLVED_REFERENCE!>xx<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,8 +11,8 @@ public inline fun <T: Closeable, R> T.use(block: T.()-> R) : R {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
C().<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>use<!> {
|
||||
C().use {
|
||||
this.close()
|
||||
<!UNRESOLVED_REFERENCE!>x<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package aa
|
||||
|
||||
class Some<T>
|
||||
|
||||
class SomeTemplate {
|
||||
fun <T> query(some: Class<T>) = some
|
||||
|
||||
|
||||
// Uncomment this to get CANNOT_COMPLETE_RESOLVE error
|
||||
fun <T> query1(some: Class<T>) = some
|
||||
fun <T> query1(some: Some<T>) = some
|
||||
}
|
||||
|
||||
fun SomeTemplate.query(f: (i: Int) -> Unit) = f
|
||||
fun SomeTemplate.query1(f: (i: Int) -> Unit) = f
|
||||
|
||||
fun test() {
|
||||
val mapperFunction = {(i: Int)-> }
|
||||
SomeTemplate().query(mapperFunction)
|
||||
|
||||
// TYPE_MISMATCH: Required Class<[ERROR: CANT_INFER]>, Found (jet.Int) -> Unit
|
||||
SomeTemplate().query {(i: Int)-> }
|
||||
SomeTemplate().query1 {(i: Int)-> }
|
||||
}
|
||||
Reference in New Issue
Block a user