| // RUN_PIPELINE_TILL: CODEGEN | |
| // DIAGNOSTICS: -UNUSED_ANONYMOUS_PARAMETER | |
| // FILE: KI.kt | |
| interface KI { | |
| fun manyParams(x: (String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String) -> Unit) | |
| } | |
| // FILE: A.java | |
| import kotlin.jvm.functions.FunctionN; | |
| public class A implements KI { | |
| public FunctionN<?> field; | |
| public A(FunctionN<?> w) {} | |
| public void foo(FunctionN<String> x) { | |
| } | |
| public FunctionN<?> bar() { | |
| return null; | |
| } | |
| public void baz(java.util.List<FunctionN<?>> z) { | |
| } | |
| public void manyParams(FunctionN<kotlin.Unit> x) { | |
| } | |
| } | |
| // FILE: main.kt | |
| fun <T> any(): T = null!! | |
| fun main() { | |
| val a: A = A(null) | |
| a.field.hashCode(); | |
| a.field = null; | |
| a.foo(null) | |
| a.bar() | |
| a.baz(listOf()) | |
| a.manyParams(null) | |
| a.manyParams(any<kotlin.jvm.functions.FunctionN<Unit>>()) | |
| // Potentially, this would have better to forbid calling manyParams, too. | |
| // But it might be complicated because we need to match that it is an override | |
| // Seems to be fine because `A::manyParams` is anyway an override in JVM and can be called with (a as K) | |
| a.manyParams { | |
| x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32 -> | |
| } | |
| } | |
| /* GENERATED_FIR_TAGS: assignment, checkNotNullCall, flexibleType, functionDeclaration, functionalType, | |
| interfaceDeclaration, javaFunction, javaProperty, javaType, lambdaLiteral, localProperty, nullableType, | |
| propertyDeclaration, starProjection, typeParameter */ |