[NI] Report unsafe invoke properly for flexible types
`isNullable` check returns `true` for flexible types, which leads to false positive unsafe invoke error, when receiver for invoke's property is flexible. ^KT-30695 Fixed
This commit is contained in:
@@ -1,3 +1,13 @@
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
public static Cls createFlexible() {
|
||||
return new Cls();
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class MemberInvokeOwner {
|
||||
operator fun invoke() {}
|
||||
}
|
||||
@@ -23,3 +33,11 @@ fun testNotNullableReceiver(notNullable: Cls) {
|
||||
notNullable.<!UNSAFE_IMPLICIT_INVOKE_CALL!>nullableExtensionProperty<!>()
|
||||
notNullable<!UNNECESSARY_SAFE_CALL!>?.<!>extensionProperty()
|
||||
}
|
||||
|
||||
fun testFlexibleReceiver() {
|
||||
val flexible = JavaClass.createFlexible()
|
||||
flexible.extensionProperty()
|
||||
flexible?.<!UNSAFE_IMPLICIT_INVOKE_CALL!>extensionProperty<!>()
|
||||
flexible.<!UNSAFE_IMPLICIT_INVOKE_CALL!>nullableExtensionProperty<!>()
|
||||
flexible?.<!UNSAFE_IMPLICIT_INVOKE_CALL!>nullableExtensionProperty<!>()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user