Fix references to sam adapted functions, also fix lookup location

#KT-31025 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-07-15 10:16:04 +03:00
parent 0c79de1a98
commit a15d3c76b6
9 changed files with 102 additions and 6 deletions
@@ -0,0 +1,24 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// FILE: JSam.java
public interface JSam<T, R> {
R apply(T t);
}
// FILE: Inv.java
public class Inv<T> {
public final <R> Inv<R> map(JSam<? super T, ? extends R> mapper) {
return null;
}
}
// FILE: test.kt
fun test(inv: Inv<String>) {
val m: ((String) -> String) -> Inv<String> = inv::map
<!INAPPLICABLE_CANDIDATE!>take<!>(inv::map)
}
fun take(f: ((String) -> String) -> Inv<String>) {}
@@ -0,0 +1,24 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// FILE: JSam.java
public interface JSam<T, R> {
R apply(T t);
}
// FILE: Inv.java
public class Inv<T> {
public final <R> Inv<R> map(JSam<? super T, ? extends R> mapper) {
return null;
}
}
// FILE: test.kt
fun test(inv: Inv<String>) {
val m: ((String) -> String) -> Inv<String> = inv::map
take(inv::map)
}
fun take(f: ((String) -> String) -> Inv<String>) {}
@@ -0,0 +1,19 @@
package
public fun take(/*0*/ f: ((kotlin.String) -> kotlin.String) -> Inv<kotlin.String>): kotlin.Unit
public fun test(/*0*/ inv: Inv<kotlin.String>): kotlin.Unit
public open class Inv</*0*/ T : kotlin.Any!> {
public constructor Inv</*0*/ T : kotlin.Any!>()
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 </*0*/ R : kotlin.Any!> map(/*0*/ mapper: JSam<in T!, out R!>!): Inv<R!>!
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface JSam</*0*/ T : kotlin.Any!, /*1*/ R : kotlin.Any!> {
public abstract fun apply(/*0*/ t: T!): R!
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
}