FIR: support adapted callable reference with vararg
This commit is contained in:
committed by
Mikhail Glukhikh
parent
4332e95b8a
commit
0e54f98b79
Vendored
+1
-1
@@ -7,7 +7,7 @@ fun test(i: IntArray) {
|
||||
myLet(::foo)
|
||||
<!INAPPLICABLE_CANDIDATE!>myLet<!><Int>(<!UNRESOLVED_REFERENCE!>::foo<!>)
|
||||
myLet<IntArray>(::foo)
|
||||
<!INAPPLICABLE_CANDIDATE!>myLetExplicit1<!>(<!UNRESOLVED_REFERENCE!>::foo<!>)
|
||||
myLetExplicit1(::foo)
|
||||
myLetExplicit2(::foo)
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -36,7 +36,7 @@ object Test3 {
|
||||
|
||||
fun test() {
|
||||
val result = foo(::bar)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
compiler/testData/diagnostics/tests/callableReference/referenceAdaptationHasDependencyOnApi14.fir.kt
Vendored
+1
-1
@@ -12,7 +12,7 @@ fun allOfTheAbove(f: (A) -> Unit): Any = f
|
||||
|
||||
fun test() {
|
||||
coercionToUnit(A::foo)
|
||||
<!INAPPLICABLE_CANDIDATE!>varargToElement<!>(<!UNRESOLVED_REFERENCE!>A::foo<!>)
|
||||
varargToElement(A::foo)
|
||||
defaultAndVararg(A::foo)
|
||||
allOfTheAbove(A::foo)
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,5 +6,5 @@ fun foo(i: Int) {}
|
||||
|
||||
val fn1: (Int) -> Unit = ::foo
|
||||
val fn2: (IntArray) -> Unit = ::foo
|
||||
val fn3: (Int, Int) -> Unit = <!UNRESOLVED_REFERENCE!>::foo<!>
|
||||
val fn3: (Int, Int) -> Unit = ::foo
|
||||
val fn4: (Array<String>) -> Unit = ::foo
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
// !LANGUAGE: +SuspendConversion
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
fun unitCoercion(f: suspend () -> Unit) {}
|
||||
fun foo(): Int = 0
|
||||
|
||||
fun defaults(f: suspend (Int) -> String) {}
|
||||
fun bar(i: Int, l: Long = 42L): String = ""
|
||||
|
||||
fun varargs(f: suspend (Int, Int, Int) -> String) {}
|
||||
fun baz(vararg ints: Int): String = ""
|
||||
|
||||
fun unitCoercionAndDefaults(f: suspend () -> Unit) {}
|
||||
fun all(s: String = ""): Int = 0
|
||||
|
||||
fun test() {
|
||||
unitCoercion(::foo)
|
||||
defaults(::bar)
|
||||
<!INAPPLICABLE_CANDIDATE!>varargs<!>(<!UNRESOLVED_REFERENCE!>::baz<!>)
|
||||
unitCoercionAndDefaults(::all)
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +SuspendConversion
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
@@ -17,13 +17,13 @@ fun useMixedStringArgs3(fn: (String, Array<String>, String) -> Unit) = fn("foo",
|
||||
fun useTwoStringArrays(fn: (Array<String>, Array<String>) -> Unit) = fn(arrayOf("foo", "bar"), arrayOf("baz", "boo"))
|
||||
|
||||
fun test() {
|
||||
<!INAPPLICABLE_CANDIDATE!>useStrings<!>(<!UNRESOLVED_REFERENCE!>::stringVararg<!>)
|
||||
useStrings(::stringVararg)
|
||||
useStringArray(::stringVararg)
|
||||
useIntArray(::numberVararg)
|
||||
usePrimitiveIntArray(::intVararg)
|
||||
<!INAPPLICABLE_CANDIDATE!>useIntArray<!>(<!UNRESOLVED_REFERENCE!>::intVararg<!>)
|
||||
<!INAPPLICABLE_CANDIDATE!>useMixedStringArgs1<!>(<!UNRESOLVED_REFERENCE!>::stringVararg<!>)
|
||||
<!INAPPLICABLE_CANDIDATE!>useMixedStringArgs2<!>(<!UNRESOLVED_REFERENCE!>::stringVararg<!>)
|
||||
useMixedStringArgs2(::stringVararg)
|
||||
<!INAPPLICABLE_CANDIDATE!>useMixedStringArgs3<!>(<!UNRESOLVED_REFERENCE!>::stringVararg<!>)
|
||||
<!INAPPLICABLE_CANDIDATE!>useTwoStringArrays<!>(<!UNRESOLVED_REFERENCE!>::stringVararg<!>)
|
||||
useTwoStringArrays(::stringVararg)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user