[FIR2IR] Replace star projections with upper bounds for SAM conversion types

This commit is contained in:
Dmitriy Novozhilov
2021-03-18 12:48:28 +03:00
parent 50f2666eba
commit 7dc3be3b9b
10 changed files with 70 additions and 20 deletions
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// JVM_TARGET: 1.8
// SAM_CONVERSIONS: INDY
fun interface Cmp<T> {
@@ -0,0 +1,26 @@
// TARGET_BACKEND: JVM
// FULL_JDK
// FILE: ConventionMapping.java
import java.util.concurrent.Callable;
public class ConventionMapping {
MappedProperty map(String propertyName, Callable<?> value) {
return new MappedProperty();
}
public static class MappedProperty {
}
}
// FILE: FileCollection.java
public class FileCollection {}
// FILE: test.kt
fun test(mapping: ConventionMapping, fn: () -> FileCollection) {
mapping.map("classpath", fn)
}
fun box(): String = "OK"
@@ -1,7 +0,0 @@
fun test1() {
bar(j = local fun <anonymous>(x: Any): @FlexibleNullability Any? {
return x
}
/*-> @FlexibleNullability J<*>? */)
}
@@ -1,11 +0,0 @@
FILE fqName:<root> fileName:/samByProjectedType.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public open fun bar (j: @[FlexibleNullability] <root>.J<*>?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
j: TYPE_OP type=@[FlexibleNullability] <root>.J<*>? origin=SAM_CONVERSION typeOperand=@[FlexibleNullability] <root>.J<*>?
FUN_EXPR type=kotlin.Function1<kotlin.Any, @[FlexibleNullability] kotlin.Any?> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.Any) returnType:@[FlexibleNullability] 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): @[FlexibleNullability] kotlin.Any? declared in <root>.test1'
GET_VAR 'x: kotlin.Any declared in <root>.test1.<anonymous>' type=kotlin.Any origin=null
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: samByProjectedType.kt
fun test1() {
H.bar { x: Any -> x }