Separate UNSAFE_IMPLICIT_INVOKE_CALL diagnostics introduced (see KT-8252)
This commit is contained in:
+1
-1
@@ -13,7 +13,7 @@ fun foo() {
|
||||
rule?.apply?.invoke()
|
||||
|
||||
// this should be an error
|
||||
rule?.<!UNSAFE_CALL!>apply<!>()
|
||||
rule?.<!UNSAFE_IMPLICIT_INVOKE_CALL!>apply<!>()
|
||||
|
||||
// these both also ok (with smart cast / unnecessary safe call)
|
||||
if (rule != null) {
|
||||
|
||||
@@ -9,13 +9,13 @@ interface T {
|
||||
}
|
||||
|
||||
fun test(t: T) {
|
||||
t.<!UNSAFE_CALL!>f<!>(1) //unsafe call error
|
||||
t.<!UNSAFE_IMPLICIT_INVOKE_CALL!>f<!>(1) //unsafe call error
|
||||
t.f?.invoke(1)
|
||||
}
|
||||
|
||||
fun test1(t: T?) {
|
||||
t<!UNSAFE_CALL!>.<!><!FUNCTION_EXPECTED!>f<!>(1) // todo resolve f as value and report UNSAFE_CALL
|
||||
t?.<!UNSAFE_CALL!>f<!>(1)
|
||||
t?.<!UNSAFE_IMPLICIT_INVOKE_CALL!>f<!>(1)
|
||||
t<!UNSAFE_CALL!>.<!>f?.invoke(1)
|
||||
t?.f?.invoke(1)
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
||||
if (x != null) {
|
||||
<!UNSAFE_CALL!>y<!>(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>y<!>(<!DEBUG_INFO_SMARTCAST!>x<!>)
|
||||
}
|
||||
|
||||
if (y != null) {
|
||||
|
||||
+1
-1
@@ -18,6 +18,6 @@ public class J {
|
||||
|
||||
fun test() {
|
||||
J.staticNN()
|
||||
J.<!UNSAFE_CALL!>staticN<!>()
|
||||
J.<!UNSAFE_IMPLICIT_INVOKE_CALL!>staticN<!>()
|
||||
J.staticJ()
|
||||
}
|
||||
@@ -3,18 +3,18 @@ class A(val x: (String.() -> Unit)?)
|
||||
fun test(a: A) {
|
||||
if (a.x != null) {
|
||||
"".<!DEBUG_INFO_SMARTCAST!>(a.x)<!>()
|
||||
a.<!UNSAFE_CALL!>x<!>("") // todo
|
||||
a.<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>("") // todo
|
||||
<!DEBUG_INFO_SMARTCAST!>(a.x)<!>("")
|
||||
}
|
||||
"".<!UNSAFE_CALL!>(a.x)<!>()
|
||||
a.<!UNSAFE_CALL!>x<!>("")
|
||||
<!UNSAFE_CALL!>(a.x)<!>("")
|
||||
"".<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>()
|
||||
a.<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>("")
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>("")
|
||||
|
||||
with("") {
|
||||
a.<!UNSAFE_CALL!>x<!>(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
<!UNSAFE_CALL!>(a.x)<!>()
|
||||
a.<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>()
|
||||
if (a.x != null) {
|
||||
a.<!UNSAFE_CALL!>x<!>(<!NO_VALUE_FOR_PARAMETER!>)<!> // todo
|
||||
a.<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>(<!NO_VALUE_FOR_PARAMETER!>)<!> // todo
|
||||
<!DEBUG_INFO_SMARTCAST!>(a.x)<!>()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user