KT-11733 Cannot infer type parameter in SAM with nullability annotations
#KT-11733 Fixed
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
// !CHECK_TYPE
|
||||
|
||||
interface Predicate<T>
|
||||
|
||||
fun <T> Predicate(<!UNUSED_PARAMETER!>x<!>: (T?) -> Boolean): Predicate<T> = null!!
|
||||
|
||||
fun foo() {
|
||||
process(Predicate {
|
||||
x -> x checkType { _<String?>() }
|
||||
|
||||
true
|
||||
})
|
||||
}
|
||||
|
||||
fun process(<!UNUSED_PARAMETER!>x<!>: Predicate<String>) {}
|
||||
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ T> Predicate(/*0*/ x: (T?) -> kotlin.Boolean): Predicate<T>
|
||||
public fun foo(): kotlin.Unit
|
||||
public fun process(/*0*/ x: Predicate<kotlin.String>): kotlin.Unit
|
||||
|
||||
public interface Predicate</*0*/ T> {
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// !CHECK_TYPE
|
||||
|
||||
// FILE: Predicate.java
|
||||
import org.jetbrains.annotations.NotNull
|
||||
|
||||
public interface Predicate<T extends CharSequence> {
|
||||
// Same effect with @Nullable here
|
||||
boolean invoke(@NotNull T t);
|
||||
}
|
||||
// FILE: Main.kt
|
||||
fun process(<!UNUSED_PARAMETER!>x<!>: Predicate<String>) {}
|
||||
fun main(args: Array<String>) {
|
||||
process(Predicate { x -> x checkType { _<String>() }
|
||||
true
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun </*0*/ T : kotlin.CharSequence!> Predicate(/*0*/ function: (T) -> kotlin.Boolean): Predicate<T>
|
||||
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
|
||||
public fun process(/*0*/ x: Predicate<kotlin.String>): kotlin.Unit
|
||||
|
||||
public interface Predicate</*0*/ T : kotlin.CharSequence!> {
|
||||
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 abstract operator fun invoke(/*0*/ @org.jetbrains.annotations.NotNull() t: T): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user