FIR: Fix SAM conversion for raw types with non-trivial TP upper bounds
This commit is contained in:
Vendored
-33
@@ -1,33 +0,0 @@
|
||||
// !CHECK_TYPE
|
||||
// FILE: Function.java
|
||||
public interface Function<E extends java.util.Map<String, Integer>, F extends CharSequence> {
|
||||
F handle(E e);
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public void foo(Function<?, ?> l) {
|
||||
}
|
||||
|
||||
public static void bar(Function<?, ?> l) {
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun main() {
|
||||
A().foo {
|
||||
x ->
|
||||
x checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Map<String, Int>?>() }
|
||||
""
|
||||
}
|
||||
|
||||
A.bar {
|
||||
x ->
|
||||
x checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Map<String, Int>>() }
|
||||
""
|
||||
}
|
||||
|
||||
val block: (Map<String, Int>) -> CharSequence = { x -> x.toString() }
|
||||
A().<!INAPPLICABLE_CANDIDATE!>foo<!>(block)
|
||||
A.<!INAPPLICABLE_CANDIDATE!>bar<!>(block)
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !CHECK_TYPE
|
||||
// FILE: Function.java
|
||||
public interface Function<E extends java.util.Map<String, Integer>, F extends CharSequence> {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
FILE fqName:<root> fileName:/samByProjectedType.kt
|
||||
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE): /H.bar>#' type=kotlin.Unit
|
||||
FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Any?> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.Any) returnType:kotlin.Any?
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (x: kotlin.Any): kotlin.Any? declared in <root>.test1'
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test1.<anonymous>' type=kotlin.Any origin=null
|
||||
CALL 'public open fun bar (j: <root>.J<*>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
|
||||
j: TYPE_OP type=<root>.J<*>? origin=SAM_CONVERSION typeOperand=<root>.J<*>?
|
||||
FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Any?> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.Any) returnType:kotlin.Any?
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (x: kotlin.Any): kotlin.Any? declared in <root>.test1'
|
||||
GET_VAR 'x: kotlin.Any declared in <root>.test1.<anonymous>' type=kotlin.Any origin=null
|
||||
|
||||
Reference in New Issue
Block a user