NI: Allow to resolve to functions with SAM conversion and passing array without spread as vararg (with warning)

^KT-35224 Fixed
This commit is contained in:
Victor Petukhov
2019-12-04 20:29:03 +03:00
parent fe875d628d
commit 07269661b4
33 changed files with 573 additions and 27 deletions
@@ -0,0 +1,21 @@
// FILE: test.before.kt
// "Add a spread operator before an array passing as vararg" "false"
// ACTION: Add 'toString()' call
// ACTION: Create member function 'Test.foo'
// ACTION: Introduce import alias
// ACTION: Introduce local variable
// ACTION: Put arguments on separate lines
// ERROR: Type mismatch: inferred type is Array<???> but String! was expected
// COMPILER_ARGUMENTS: -XXLanguage:+NewInference -XXLanguage:+SamConversionForKotlinFunctions -XXLanguage:+SamConversionPerArgument -XXLanguage:+ProhibitVarargAsArrayAfterSamArgument
// WITH_RUNTIME
fun main() {
Test.foo({}, <caret>arrayOf())
}
// FILE: Test.java
public class Test {
public static String foo(Runnable r, String... strs) {
return null;
}
}